diff --git a/backend/graphify-out/2026-08-02/.graphify_labels.json b/backend/graphify-out/2026-08-02/.graphify_labels.json index a7a56a40a..0abcf89c7 100644 --- a/backend/graphify-out/2026-08-02/.graphify_labels.json +++ b/backend/graphify-out/2026-08-02/.graphify_labels.json @@ -178,6 +178,7 @@ "176": "_forbid_legacy_invoice_fields", "177": "vehicle_maintenance.py", "178": "SoftDeleteModel", + "179": "_ensure_subpack_slip_no", "180": "menu.py", "185": "vehicle_urea.py", "186": "transport_address.py", diff --git a/backend/graphify-out/2026-08-02/GRAPH_REPORT.md b/backend/graphify-out/2026-08-02/GRAPH_REPORT.md index f51a32597..ce573ef64 100644 --- a/backend/graphify-out/2026-08-02/GRAPH_REPORT.md +++ b/backend/graphify-out/2026-08-02/GRAPH_REPORT.md @@ -1,16 +1,16 @@ -# Graph Report - backend (2026-08-01) +# Graph Report - backend (2026-08-02) ## Corpus Check -- 301 files · ~206,684 words +- 301 files · ~206,686 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 4543 nodes · 15453 edges · 531 communities (513 shown, 18 thin omitted) +- 4543 nodes · 15453 edges · 532 communities (514 shown, 18 thin omitted) - Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 410 edges (avg confidence: 0.53) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `e59b2aa6` +- Built from commit: `eccefc66` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -149,6 +149,7 @@ - [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]] - [[_COMMUNITY_datetime_parse.py|datetime_parse.py]] - [[_COMMUNITY_SoftDeleteModel|SoftDeleteModel]] +- [[_COMMUNITY__ensure_subpack_slip_no|_ensure_subpack_slip_no]] - [[_COMMUNITY_menu.py|menu.py]] - [[_COMMUNITY_crm_quote_pdf.py|crm_quote_pdf.py]] - [[_COMMUNITY_shanxia2.0 后端骨架(FastAPI)|shanxia2.0 后端骨架(FastAPI)]] @@ -197,7 +198,7 @@ ## Import Cycles - None detected. -## Communities (531 total, 18 thin omitted) +## Communities (532 total, 18 thin omitted) ### Community 0 - "Community 0" Cohesion: 0.14 @@ -236,7 +237,7 @@ Cohesion: 0.09 Nodes (71): register_quote_routes(), create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id, accept_quote(), _build_quote_filters(), calculate_quote_amount(), create_new_version() (+63 more) ### Community 11 - "Community 11" -Cohesion: 0.11 +Cohesion: 0.10 Nodes (54): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), get_apply(), get_disburse(), list_applies() (+46 more) ### Community 12 - "Community 12" @@ -252,8 +253,8 @@ Cohesion: 0.10 Nodes (47): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+39 more) ### Community 15 - "Community 15" -Cohesion: 0.10 -Nodes (41): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+33 more) +Cohesion: 0.12 +Nodes (14): BxReimburseApply, BxReimburseApproval, BxReimburseDetail, BxReimburseInvoice, BxReimburseOffset, ReimburseApplyOut, ReimburseInvoiceBriefOut, Any (+6 more) ### Community 16 - "Community 16" Cohesion: 0.09 @@ -261,7 +262,7 @@ Nodes (60): cancel_apply(), create_apply(), create_record(), delete_applies(), d ### Community 18 - "Community 18" Cohesion: 0.11 -Nodes (53): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+45 more) +Nodes (37): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+29 more) ### Community 19 - "Community 19" Cohesion: 0.16 @@ -292,8 +293,8 @@ Cohesion: 0.10 Nodes (45): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 运营端角色守卫:admin / super_admin 可访问。, 接口菜单权限守卫。super_admin 直接放行。, require_admin_or_super_admin(), require_menu_code(), batch_assign_owner(), batch_submit_contract_approval() (+37 more) ### Community 27 - "Community 27" -Cohesion: 0.13 -Nodes (33): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan() (+25 more) +Cohesion: 0.17 +Nodes (28): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan() (+20 more) ### Community 28 - "Community 28" Cohesion: 0.11 @@ -308,8 +309,8 @@ Cohesion: 0.10 Nodes (34): menu_badge_stats(), Session, Session, recognize_cert(), RecognizeCertBody, RecognizeCertResult, _address_to_read(), _build_address_query() (+26 more) ### Community 33 - "Community 33" -Cohesion: 0.13 -Nodes (22): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+14 more) +Cohesion: 0.20 +Nodes (15): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+7 more) ### Community 34 - "Community 34" Cohesion: 0.11 @@ -332,16 +333,16 @@ Cohesion: 0.21 Nodes (15): load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal, Session, 按计划产品明细 ID 批量加载归档品牌数量(brandId/brandName/qty)。, 软删旧品牌量行后按归档结果插入;无品牌约定则只软删不插入。, validate_brand_qty_rows() (+7 more) ### Community 39 - "Community 39" -Cohesion: 0.22 -Nodes (27): assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope(), get_clue() (+19 more) +Cohesion: 0.11 +Nodes (44): clue_assign(), clue_convert(), clue_create(), clue_delete(), clue_invalid(), clue_update(), clue_update_level(), clue_update_status() (+36 more) ### Community 42 - "Community 42" Cohesion: 0.19 Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+24 more) ### Community 43 - "Community 43" -Cohesion: 0.10 -Nodes (30): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets() (+22 more) +Cohesion: 0.11 +Nodes (28): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request, Session (+20 more) ### Community 44 - "Community 44" Cohesion: 0.13 @@ -392,8 +393,8 @@ Cohesion: 0.20 Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more) ### Community 60 - "Community 60" -Cohesion: 0.13 -Nodes (11): _coerce_id(), OffsetItem, PaymentFinanceStatsOut, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseApplyCreate, ReimburseApprovalOut, ReimburseApproverPendingStatsOut, ReimburseDetailCreate (+3 more) +Cohesion: 0.10 +Nodes (40): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse() (+32 more) ### Community 61 - "Community 61" Cohesion: 0.16 @@ -408,16 +409,16 @@ Cohesion: 0.15 Nodes (16): 数据模型(与 docs/sql/shanxia2.0.sql 全库导出基线对齐的核心系统表), Web 管理端约定角色(由 sys_role.role_name 映射而来,非数据库枚举), 流程实例 wf_process_instance, UserRole, WfProcessInstance, _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统 (+8 more) ### Community 64 - "Community 64" -Cohesion: 0.05 -Nodes (158): clue_check_convert(), clue_check_duplicate(), clue_export(), clue_follow_statistics(), clue_list(), clue_mine(), clue_park_area_list(), clue_statistics_overview() (+150 more) +Cohesion: 0.04 +Nodes (160): clue_check_convert(), clue_check_duplicate(), clue_export(), clue_follow_create(), clue_follow_delete(), clue_follow_detail(), clue_follow_list(), clue_follow_statistics() (+152 more) ### Community 65 - "Community 65" Cohesion: 0.10 Nodes (62): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+54 more) ### Community 66 - "Community 66" -Cohesion: 0.17 -Nodes (19): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+11 more) +Cohesion: 0.15 +Nodes (24): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+16 more) ### Community 67 - "Community 67" Cohesion: 0.29 @@ -440,8 +441,8 @@ Cohesion: 0.05 Nodes (68): CRM 报价单 API 路由 — 挂接到 crm.router, BaseModel, InvoiceAttachmentOut, InvoiceOut, LedgerOut, WalletSummaryOut, ContactByCustomerBody, ContactDetailBody (+60 more) ### Community 72 - "Community 72" -Cohesion: 0.19 -Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more) +Cohesion: 0.17 +Nodes (30): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+22 more) ### Community 73 - "Community 73" Cohesion: 0.20 @@ -460,8 +461,8 @@ Cohesion: 0.16 Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more) ### Community 81 - "Community 81" -Cohesion: 0.22 -Nodes (14): format_datetime(), get_current_time(), parse_datetime(), datetime, datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+6 more) +Cohesion: 0.21 +Nodes (13): format_datetime(), get_current_time(), parse_datetime(), datetime, datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+5 more) ### Community 83 - "Community 83" Cohesion: 0.09 @@ -500,8 +501,8 @@ Cohesion: 0.23 Nodes (19): contact_by_customer(), contact_detail(), contact_set_primary(), create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any (+11 more) ### Community 94 - "response.py" -Cohesion: 0.07 -Nodes (56): clue_follow_detail(), pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_list(), pool_rule_update(), pool_rule_update_status() (+48 more) +Cohesion: 0.09 +Nodes (37): pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_list(), pool_rule_update(), pool_rule_update_status(), get_pool_record() (+29 more) ### Community 95 - "Community 95" Cohesion: 0.21 @@ -536,12 +537,12 @@ Cohesion: 0.23 Nodes (11): cancel_plan(), 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, _plan_type_to_business_type(), _normalize_plan_date(), date, Session, 运输计划 · 工厂现场链接(与地磅出入库单解耦), 入库/出库安排运输:按产品生成现场链接(不写 db_inbound_outbound)。 (+3 more) ### Community 107 - "apply_pl_scope" -Cohesion: 0.05 -Nodes (77): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_convert(), clue_create(), clue_delete() (+69 more) +Cohesion: 0.06 +Nodes (62): category_delete(), clue_import_template(), customer_import_template(), invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list() (+54 more) ### Community 109 - "Community 109" -Cohesion: 0.14 -Nodes (18): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), get_bx_current_user(), BxExpenseItem (+10 more) +Cohesion: 0.15 +Nodes (17): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), BxExpenseItem, _coerce_id() (+9 more) ### Community 110 - "Base" Cohesion: 0.18 @@ -552,8 +553,8 @@ Cohesion: 0.28 Nodes (14): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+6 more) ### Community 112 - "storage.py" -Cohesion: 0.08 -Nodes (35): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add(), supplier_info_delete() (+27 more) +Cohesion: 0.07 +Nodes (48): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, supplier_info_add(), supplier_info_delete(), supplier_info_list_all(), supplier_info_update() (+40 more) ### Community 113 - "quote_share_log.py" Cohesion: 0.26 @@ -597,7 +598,7 @@ Nodes (19): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_i ### Community 128 - "plan.py" Cohesion: 0.06 -Nodes (116): archive_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full(), delete_plan(), _determine_plan_type() (+108 more) +Nodes (110): archive_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full(), delete_plan(), _determine_plan_type() (+102 more) ### Community 129 - "BaseStorage" Cohesion: 0.24 @@ -612,8 +613,8 @@ Cohesion: 0.36 Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic ### Community 132 - "crm_supplier_hazard.py" -Cohesion: 0.14 -Nodes (23): build_updates(), derive_source_url(), fetch_source_customers(), legacy_id_to_str(), load_oss_map(), load_runtime_settings(), load_settings_env(), main() (+15 more) +Cohesion: 0.15 +Nodes (21): build_updates(), derive_source_url(), fetch_source_customers(), legacy_id_to_str(), load_oss_map(), load_runtime_settings(), load_settings_env(), main() (+13 more) ### Community 134 - "Community 134" Cohesion: 0.15 @@ -628,8 +629,8 @@ Cohesion: 0.19 Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more) ### Community 137 - "statistics.py" -Cohesion: 0.45 -Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more) +Cohesion: 0.22 +Nodes (22): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+14 more) ### Community 138 - "Community 138" Cohesion: 0.33 @@ -648,8 +649,8 @@ Cohesion: 0.33 Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_dict(), soft_delete_leave(), update_leave() (+3 more) ### Community 144 - "SysApiRequestLog" -Cohesion: 0.33 -Nodes (7): clue_import_template(), customer_import_template(), product_import_template(), export_rows_to_xlsx_response(), CRM 列表导出统一入口:表头 + 行数据 + 字典 label 转换 + 文件流响应。, workbook_to_streaming_response(), StreamingResponse +Cohesion: 0.10 +Nodes (20): category_add(), category_tree(), category_update(), clue_import(), product_delete(), product_detail(), product_import(), UploadFile (+12 more) ### Community 145 - "minio_url.py" Cohesion: 0.38 @@ -708,13 +709,17 @@ Cohesion: 0.24 Nodes (5): MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(PDF 等 iframe 场景)。 ### Community 173 - ".to_tenant_user_dict" -Cohesion: 0.40 -Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 +Cohesion: 0.38 +Nodes (6): apply_product_snapshot_to_inventory(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。, resolve_crm_product() ### Community 174 - "datetime_parse.py" Cohesion: 0.67 Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。 +### Community 179 - "_ensure_subpack_slip_no" +Cohesion: 0.40 +Nodes (6): _ensure_subpack_slip_no(), _format_subpack_slip_no(), _normalize_subpack_slip_no(), 将历史分装单号统一为 NO:SXFZYYYYMMDD-###, 分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增), _subpack_slip_no_seq() + ### Community 180 - "menu.py" Cohesion: 0.36 Nodes (13): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), menu_name_exists(), Any (+5 more) @@ -755,7 +760,7 @@ _Questions this graph is uniquely positioned to answer:_ _High betweenness centrality (0.151) - this node is a cross-community bridge._ - **Why does `Settings` connect `price_letter_detail` to `backfill_crm_contract_attachment_urls.py`, `Community 35`, `crm_supplier_hazard.py`, `Community 5`, `Community 7`, `Community 72`, `Community 73`, `Community 42`, `Community 78`, `Community 52`, `Any`, `Community 59`, `Community 62`, `Community 95`?** _High betweenness centrality (0.110) - this node is a cross-community bridge._ -- **Why does `BaseModel` connect `Community 71` to `plan.py`, `BaseStorage`, `Community 1`, `Community 6`, `Community 11`, `Community 12`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `__init__.py`, `ContractListQuery`, `Community 152`, `Community 25`, `Community 26`, `Community 27`, `Community 30`, `Community 33`, `Community 34`, `Community 36`, `Community 48`, `Community 49`, `SoftDeleteModel`, `Community 50`, `Community 54`, `Community 60`, `Community 64`, `Community 65`, `Community 66`, `Community 83`, `Community 86`, `response.py`, `_ensure_subpack_slip_no`, `apply_pl_scope`, `Community 109`, `Community 111`, `storage.py`, `Community 119`, `customer_pool.py`, `Community 127`?** +- **Why does `BaseModel` connect `Community 71` to `plan.py`, `BaseStorage`, `Community 1`, `Community 6`, `statistics.py`, `Community 11`, `Community 12`, `Community 14`, `Community 15`, `SysApiRequestLog`, `Community 16`, `Community 18`, `__init__.py`, `ContractListQuery`, `Community 152`, `Community 25`, `Community 26`, `Community 27`, `Community 30`, `Community 33`, `Community 34`, `Community 36`, `Community 39`, `Community 48`, `Community 49`, `SoftDeleteModel`, `Community 50`, `Community 54`, `Community 60`, `Community 64`, `Community 65`, `Community 66`, `Community 83`, `Community 86`, `response.py`, `_ensure_subpack_slip_no`, `apply_pl_scope`, `Community 109`, `Community 111`, `storage.py`, `Community 119`, `customer_pool.py`, `Community 127`?** _High betweenness centrality (0.106) - this node is a cross-community bridge._ - **Are the 8 inferred relationships involving `DbUserContext` (e.g. with `InventoryRelatedData` and `AutoGenerateMonthlyResult`) actually correct?** _`DbUserContext` has 8 INFERRED edges - model-reasoned connections that need verification._ diff --git a/backend/graphify-out/2026-08-02/graph.json b/backend/graphify-out/2026-08-02/graph.json index 6dcfe8107..56b9219b7 100644 --- a/backend/graphify-out/2026-08-02/graph.json +++ b/backend/graphify-out/2026-08-02/graph.json @@ -880,7 +880,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_bx_init", - "community": 43, + "community": 60, "norm_label": "__init__.py" }, { @@ -890,7 +890,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_api_bx_init_bx_health", - "community": 43, + "community": 60, "norm_label": "bx_health()" }, { @@ -900,7 +900,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_bx_init_rationale_1", - "community": 43, + "community": 60, "norm_label": "\u62a5\u9500(bx)api \u8def\u7531\u805a\u5408 \u2014 rest \u98ce\u683c,\u534f\u8bae\u5bf9\u9f50 bx \u539f\u7cfb\u7edf\u3002" }, { @@ -910,7 +910,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_api_bx_init_rationale_19", - "community": 43, + "community": 60, "norm_label": "p0 \u5065\u5eb7\u68c0\u67e5:\u9a8c\u8bc1 bx \u8def\u7531\u5df2\u6302\u8f7d\u4e14\u54cd\u5e94\u534f\u8bae\u4e3a code=0\u3002" }, { @@ -1410,7 +1410,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_bx_payment", - "community": 18, + "community": 137, "norm_label": "payment.py" }, { @@ -1420,7 +1420,7 @@ "source_location": "L39", "_origin": "ast", "id": "app_api_bx_payment_tenant", - "community": 18, + "community": 137, "norm_label": "_tenant()" }, { @@ -1430,7 +1430,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_bx_payment_py_session", - "community": 18, + "community": 137, "norm_label": "session" }, { @@ -1440,7 +1440,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_api_bx_payment_wrap_reimburse_rows", - "community": 18, + "community": 137, "norm_label": "_wrap_reimburse_rows()" }, { @@ -1450,7 +1450,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_api_bx_payment_list_pending_payments", - "community": 18, + "community": 137, "norm_label": "list_pending_payments()" }, { @@ -1460,7 +1460,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_api_bx_payment_payment_finance_stats", - "community": 18, + "community": 137, "norm_label": "payment_finance_stats()" }, { @@ -1470,7 +1470,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_api_bx_payment_list_processed_payments", - "community": 18, + "community": 137, "norm_label": "list_processed_payments()" }, { @@ -1480,7 +1480,7 @@ "source_location": "L132", "_origin": "ast", "id": "app_api_bx_payment_pay", - "community": 18, + "community": 137, "norm_label": "pay()" }, { @@ -1490,7 +1490,7 @@ "source_location": "L152", "_origin": "ast", "id": "app_api_bx_payment_offset", - "community": 18, + "community": 137, "norm_label": "offset()" }, { @@ -1500,7 +1500,7 @@ "source_location": "L175", "_origin": "ast", "id": "app_api_bx_payment_batch_offset", - "community": 18, + "community": 137, "norm_label": "batch_offset()" }, { @@ -1510,7 +1510,7 @@ "source_location": "L198", "_origin": "ast", "id": "app_api_bx_payment_list_advance_issues", - "community": 18, + "community": 137, "norm_label": "list_advance_issues()" }, { @@ -1520,7 +1520,7 @@ "source_location": "L245", "_origin": "ast", "id": "app_api_bx_payment_advance_issue_stats", - "community": 18, + "community": 137, "norm_label": "advance_issue_stats()" }, { @@ -1530,7 +1530,7 @@ "source_location": "L255", "_origin": "ast", "id": "app_api_bx_payment_export_advance_issues", - "community": 18, + "community": 137, "norm_label": "export_advance_issues()" }, { @@ -1540,7 +1540,7 @@ "source_location": "L335", "_origin": "ast", "id": "app_api_bx_payment_issue_advance", - "community": 18, + "community": 137, "norm_label": "issue_advance()" }, { @@ -1550,7 +1550,7 @@ "source_location": "L359", "_origin": "ast", "id": "app_api_bx_payment_list_advance_offset_records", - "community": 18, + "community": 137, "norm_label": "list_advance_offset_records()" }, { @@ -1560,7 +1560,7 @@ "source_location": "L399", "_origin": "ast", "id": "app_api_bx_payment_list_reimburse_offset_records", - "community": 18, + "community": 137, "norm_label": "list_reimburse_offset_records()" }, { @@ -1570,7 +1570,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_api_bx_reimburse", - "community": 15, + "community": 60, "norm_label": "reimburse.py" }, { @@ -1580,7 +1580,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_api_bx_reimburse_tenant", - "community": 15, + "community": 60, "norm_label": "_tenant()" }, { @@ -1590,7 +1590,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_bx_reimburse_py_session", - "community": 15, + "community": 60, "norm_label": "session" }, { @@ -1600,7 +1600,7 @@ "source_location": "L34", "_origin": "ast", "id": "app_api_bx_reimburse_build_details_data", - "community": 15, + "community": 60, "norm_label": "_build_details_data()" }, { @@ -1610,7 +1610,7 @@ "source_location": "L63", "_origin": "ast", "id": "app_api_bx_reimburse_get_generated_title", - "community": 15, + "community": 60, "norm_label": "get_generated_title()" }, { @@ -1620,7 +1620,7 @@ "source_location": "L80", "_origin": "ast", "id": "app_api_bx_reimburse_list_reimburses", - "community": 15, + "community": 60, "norm_label": "list_reimburses()" }, { @@ -1630,7 +1630,7 @@ "source_location": "L126", "_origin": "ast", "id": "app_api_bx_reimburse_my_reimburses", - "community": 15, + "community": 60, "norm_label": "my_reimburses()" }, { @@ -1640,7 +1640,7 @@ "source_location": "L171", "_origin": "ast", "id": "app_api_bx_reimburse_my_reimburse_stats", - "community": 15, + "community": 60, "norm_label": "my_reimburse_stats()" }, { @@ -1650,7 +1650,7 @@ "source_location": "L181", "_origin": "ast", "id": "app_api_bx_reimburse_reimburse_status_counts", - "community": 15, + "community": 60, "norm_label": "reimburse_status_counts()" }, { @@ -1660,7 +1660,7 @@ "source_location": "L190", "_origin": "ast", "id": "app_api_bx_reimburse_pending_approval", - "community": 15, + "community": 60, "norm_label": "pending_approval()" }, { @@ -1670,7 +1670,7 @@ "source_location": "L222", "_origin": "ast", "id": "app_api_bx_reimburse_pending_approval_stats", - "community": 15, + "community": 60, "norm_label": "pending_approval_stats()" }, { @@ -1680,7 +1680,7 @@ "source_location": "L232", "_origin": "ast", "id": "app_api_bx_reimburse_approved_by_me", - "community": 15, + "community": 60, "norm_label": "approved_by_me()" }, { @@ -1690,7 +1690,7 @@ "source_location": "L264", "_origin": "ast", "id": "app_api_bx_reimburse_get_reimburse", - "community": 15, + "community": 60, "norm_label": "get_reimburse()" }, { @@ -1700,7 +1700,7 @@ "source_location": "L278", "_origin": "ast", "id": "app_api_bx_reimburse_get_approvals", - "community": 15, + "community": 60, "norm_label": "get_approvals()" }, { @@ -1710,7 +1710,7 @@ "source_location": "L291", "_origin": "ast", "id": "app_api_bx_reimburse_get_approval_history", - "community": 15, + "community": 60, "norm_label": "get_approval_history()" }, { @@ -1720,7 +1720,7 @@ "source_location": "L304", "_origin": "ast", "id": "app_api_bx_reimburse_create_reimburse", - "community": 15, + "community": 60, "norm_label": "create_reimburse()" }, { @@ -1730,7 +1730,7 @@ "source_location": "L358", "_origin": "ast", "id": "app_api_bx_reimburse_update_reimburse", - "community": 15, + "community": 60, "norm_label": "update_reimburse()" }, { @@ -1740,7 +1740,7 @@ "source_location": "L403", "_origin": "ast", "id": "app_api_bx_reimburse_submit_reimburse", - "community": 15, + "community": 60, "norm_label": "submit_reimburse()" }, { @@ -1750,7 +1750,7 @@ "source_location": "L425", "_origin": "ast", "id": "app_api_bx_reimburse_approve_reimburse", - "community": 15, + "community": 60, "norm_label": "approve_reimburse()" }, { @@ -1760,7 +1760,7 @@ "source_location": "L441", "_origin": "ast", "id": "app_api_bx_reimburse_reject_reimburse", - "community": 15, + "community": 60, "norm_label": "reject_reimburse()" }, { @@ -1770,7 +1770,7 @@ "source_location": "L457", "_origin": "ast", "id": "app_api_bx_reimburse_withdraw_reimburse", - "community": 15, + "community": 60, "norm_label": "withdraw_reimburse()" }, { @@ -1780,7 +1780,7 @@ "source_location": "L475", "_origin": "ast", "id": "app_api_bx_reimburse_delete_reimburse", - "community": 15, + "community": 60, "norm_label": "delete_reimburse()" }, { @@ -1890,7 +1890,7 @@ "source_location": "L328", "_origin": "ast", "id": "app_api_crm_category_tree", - "community": 107, + "community": 144, "norm_label": "category_tree()" }, { @@ -1970,7 +1970,7 @@ "source_location": "L518", "_origin": "ast", "id": "app_api_crm_category_add", - "community": 107, + "community": 144, "norm_label": "category_add()" }, { @@ -1980,7 +1980,7 @@ "source_location": "L537", "_origin": "ast", "id": "app_api_crm_category_update", - "community": 107, + "community": 144, "norm_label": "category_update()" }, { @@ -2010,7 +2010,7 @@ "source_location": "L614", "_origin": "ast", "id": "app_api_crm_product_detail", - "community": 107, + "community": 144, "norm_label": "product_detail()" }, { @@ -2040,7 +2040,7 @@ "source_location": "L680", "_origin": "ast", "id": "app_api_crm_product_delete", - "community": 107, + "community": 144, "norm_label": "product_delete()" }, { @@ -2070,7 +2070,7 @@ "source_location": "L756", "_origin": "ast", "id": "app_api_crm_product_import", - "community": 107, + "community": 144, "norm_label": "product_import()" }, { @@ -2080,7 +2080,7 @@ "source_location": "", "_origin": "ast", "id": "app_api_crm_py_uploadfile", - "community": 107, + "community": 144, "norm_label": "uploadfile" }, { @@ -2100,7 +2100,7 @@ "source_location": "L882", "_origin": "ast", "id": "app_api_crm_product_import_template", - "community": 144, + "community": 107, "norm_label": "product_import_template()" }, { @@ -2160,7 +2160,7 @@ "source_location": "L1065", "_origin": "ast", "id": "app_api_crm_customer_import_template", - "community": 144, + "community": 107, "norm_label": "customer_import_template()" }, { @@ -2580,7 +2580,7 @@ "source_location": "L2072", "_origin": "ast", "id": "app_api_crm_statistics_overview", - "community": 64, + "community": 107, "norm_label": "statistics_overview()" }, { @@ -2590,7 +2590,7 @@ "source_location": "L2092", "_origin": "ast", "id": "app_api_crm_statistics_source", - "community": 64, + "community": 107, "norm_label": "statistics_source()" }, { @@ -2600,7 +2600,7 @@ "source_location": "L2110", "_origin": "ast", "id": "app_api_crm_statistics_level", - "community": 64, + "community": 107, "norm_label": "statistics_level()" }, { @@ -2610,7 +2610,7 @@ "source_location": "L2128", "_origin": "ast", "id": "app_api_crm_statistics_industry", - "community": 64, + "community": 107, "norm_label": "statistics_industry()" }, { @@ -2620,7 +2620,7 @@ "source_location": "L2146", "_origin": "ast", "id": "app_api_crm_statistics_trend", - "community": 64, + "community": 107, "norm_label": "statistics_trend()" }, { @@ -2630,7 +2630,7 @@ "source_location": "L2169", "_origin": "ast", "id": "app_api_crm_statistics_owner", - "community": 64, + "community": 107, "norm_label": "statistics_owner()" }, { @@ -2640,7 +2640,7 @@ "source_location": "L2187", "_origin": "ast", "id": "app_api_crm_statistics_follow", - "community": 64, + "community": 107, "norm_label": "statistics_follow()" }, { @@ -2980,7 +2980,7 @@ "source_location": "L3081", "_origin": "ast", "id": "app_api_crm_supplier_info_list", - "community": 112, + "community": 64, "norm_label": "supplier_info_list()" }, { @@ -3040,7 +3040,7 @@ "source_location": "L3247", "_origin": "ast", "id": "app_api_crm_supplier_info_export", - "community": 112, + "community": 107, "norm_label": "supplier_info_export()" }, { @@ -3140,7 +3140,7 @@ "source_location": "L3506", "_origin": "ast", "id": "app_api_crm_clue_create", - "community": 107, + "community": 39, "norm_label": "clue_create()" }, { @@ -3150,7 +3150,7 @@ "source_location": "L3529", "_origin": "ast", "id": "app_api_crm_clue_update", - "community": 107, + "community": 39, "norm_label": "clue_update()" }, { @@ -3160,7 +3160,7 @@ "source_location": "L3551", "_origin": "ast", "id": "app_api_crm_clue_delete", - "community": 107, + "community": 39, "norm_label": "clue_delete()" }, { @@ -3170,7 +3170,7 @@ "source_location": "L3582", "_origin": "ast", "id": "app_api_crm_clue_assign", - "community": 107, + "community": 39, "norm_label": "clue_assign()" }, { @@ -3180,7 +3180,7 @@ "source_location": "L3610", "_origin": "ast", "id": "app_api_crm_clue_convert", - "community": 107, + "community": 39, "norm_label": "clue_convert()" }, { @@ -3200,7 +3200,7 @@ "source_location": "L3658", "_origin": "ast", "id": "app_api_crm_clue_update_status", - "community": 107, + "community": 39, "norm_label": "clue_update_status()" }, { @@ -3210,7 +3210,7 @@ "source_location": "L3679", "_origin": "ast", "id": "app_api_crm_clue_invalid", - "community": 107, + "community": 39, "norm_label": "clue_invalid()" }, { @@ -3220,7 +3220,7 @@ "source_location": "L3710", "_origin": "ast", "id": "app_api_crm_clue_update_level", - "community": 107, + "community": 39, "norm_label": "clue_update_level()" }, { @@ -3270,7 +3270,7 @@ "source_location": "L3884", "_origin": "ast", "id": "app_api_crm_clue_follow_list", - "community": 107, + "community": 64, "norm_label": "clue_follow_list()" }, { @@ -3280,7 +3280,7 @@ "source_location": "L3916", "_origin": "ast", "id": "app_api_crm_clue_follow_create", - "community": 107, + "community": 64, "norm_label": "clue_follow_create()" }, { @@ -3290,7 +3290,7 @@ "source_location": "L3948", "_origin": "ast", "id": "app_api_crm_clue_follow_delete", - "community": 107, + "community": 64, "norm_label": "clue_follow_delete()" }, { @@ -3320,7 +3320,7 @@ "source_location": "L4105", "_origin": "ast", "id": "app_api_crm_clue_import_template", - "community": 144, + "community": 107, "norm_label": "clue_import_template()" }, { @@ -3330,7 +3330,7 @@ "source_location": "L4140", "_origin": "ast", "id": "app_api_crm_clue_import", - "community": 107, + "community": 144, "norm_label": "clue_import()" }, { @@ -3350,7 +3350,7 @@ "source_location": "L4216", "_origin": "ast", "id": "app_api_crm_clue_follow_detail", - "community": 94, + "community": 64, "norm_label": "clue_follow_detail()" }, { @@ -3360,7 +3360,7 @@ "source_location": "L4240", "_origin": "ast", "id": "app_api_crm_clue_follow_update", - "community": 107, + "community": 64, "norm_label": "clue_follow_update()" }, { @@ -3480,7 +3480,7 @@ "source_location": "L685", "_origin": "ast", "id": "app_api_crm_rationale_685", - "community": 107, + "community": 144, "norm_label": "\u5220\u9664\u4ea7\u54c1(\u652f\u6301\u5355\u6761 body.id \u548c\u6279\u91cf body.ids)" }, { @@ -3490,7 +3490,7 @@ "source_location": "L3086", "_origin": "ast", "id": "app_api_crm_rationale_3086", - "community": 112, + "community": 64, "norm_label": "\u5206\u9875\u67e5\u8be2\u4f9b\u65b9\u5217\u8868 \u2014 java: crmsupplierinfocontroller.list" }, { @@ -3550,7 +3550,7 @@ "source_location": "L3252", "_origin": "ast", "id": "app_api_crm_rationale_3252", - "community": 112, + "community": 107, "norm_label": "\u5bfc\u51fa\u4f9b\u65b9\u5217\u8868 \u2014 java: crmsupplierinfocontroller.export" }, { @@ -5640,7 +5640,7 @@ "source_location": "L129", "_origin": "ast", "id": "app_api_pl_plan_format_subpack_slip_no", - "community": 128, + "community": 179, "norm_label": "_format_subpack_slip_no()" }, { @@ -5650,7 +5650,7 @@ "source_location": "L133", "_origin": "ast", "id": "app_api_pl_plan_normalize_subpack_slip_no", - "community": 128, + "community": 179, "norm_label": "_normalize_subpack_slip_no()" }, { @@ -5660,7 +5660,7 @@ "source_location": "L158", "_origin": "ast", "id": "app_api_pl_plan_subpack_slip_no_seq", - "community": 128, + "community": 179, "norm_label": "_subpack_slip_no_seq()" }, { @@ -5670,7 +5670,7 @@ "source_location": "L166", "_origin": "ast", "id": "app_api_pl_plan_ensure_subpack_slip_no", - "community": 128, + "community": 179, "norm_label": "_ensure_subpack_slip_no()" }, { @@ -5960,7 +5960,7 @@ "source_location": "L134", "_origin": "ast", "id": "app_api_pl_plan_rationale_134", - "community": 128, + "community": 179, "norm_label": "\u5c06\u5386\u53f2\u5206\u88c5\u5355\u53f7\u7edf\u4e00\u4e3a no:sxfzyyyymmdd-###" }, { @@ -5970,7 +5970,7 @@ "source_location": "L167", "_origin": "ast", "id": "app_api_pl_plan_rationale_167", - "community": 128, + "community": 179, "norm_label": "\u5206\u914d\u5206\u88c5\u5355\u53f7 no:sxfzyyyymmdd-###(\u6309\u79df\u6237\u6bcf\u65e5\u9012\u589e)" }, { @@ -8570,7 +8570,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_core_bx_auth_bxusercontext", - "community": 15, + "community": 66, "norm_label": "bxusercontext" }, { @@ -8580,7 +8580,7 @@ "source_location": "L22", "_origin": "ast", "id": "app_core_bx_auth_bxusercontext_to_tenant_user_dict", - "community": 173, + "community": 66, "norm_label": ".to_tenant_user_dict()" }, { @@ -8590,7 +8590,7 @@ "source_location": "", "_origin": "ast", "id": "app_core_bx_auth_py_any", - "community": 173, + "community": 66, "norm_label": "any" }, { @@ -8600,7 +8600,7 @@ "source_location": "L30", "_origin": "ast", "id": "app_core_bx_auth_bxusercontext_to_user_info", - "community": 173, + "community": 66, "norm_label": ".to_user_info()" }, { @@ -8610,7 +8610,7 @@ "source_location": "L41", "_origin": "ast", "id": "app_core_bx_auth_get_bx_current_user", - "community": 109, + "community": 43, "norm_label": "get_bx_current_user()" }, { @@ -8630,7 +8630,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_core_bx_auth_rationale_14", - "community": 15, + "community": 66, "norm_label": "bx service/router \u4f7f\u7528\u7684\u5f53\u524d\u7528\u6237\u4e0a\u4e0b\u6587(sys_user.id \u4e3a uuid \u5b57\u7b26\u4e32)\u3002" }, { @@ -8640,7 +8640,7 @@ "source_location": "L23", "_origin": "ast", "id": "app_core_bx_auth_rationale_23", - "community": 173, + "community": 66, "norm_label": "\u4f9b get_tenant_no \u7b49\u95e8\u6237\u5de5\u5177\u4f7f\u7528\u3002" }, { @@ -8650,7 +8650,7 @@ "source_location": "L31", "_origin": "ast", "id": "app_core_bx_auth_rationale_31", - "community": 173, + "community": 66, "norm_label": "\u4e0e\u95e8\u6237 jwt / apply_data_scope \u6240\u9700\u7684 user_info \u5b57\u6bb5\u5bf9\u9f50\u3002" }, { @@ -10607,7 +10607,7 @@ "label": "._generate_filename()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L308", + "source_location": "L310", "_origin": "ast", "id": "app_core_storage_miniostorage_generate_filename", "community": 23, @@ -10617,7 +10617,7 @@ "label": ".upload_file()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L314", + "source_location": "L316", "_origin": "ast", "id": "app_core_storage_miniostorage_upload_file", "community": 23, @@ -10627,7 +10627,7 @@ "label": ".upload_base64()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L331", + "source_location": "L333", "_origin": "ast", "id": "app_core_storage_miniostorage_upload_base64", "community": 23, @@ -10637,7 +10637,7 @@ "label": ".delete_file()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L339", + "source_location": "L341", "_origin": "ast", "id": "app_core_storage_miniostorage_delete_file", "community": 172, @@ -10647,7 +10647,7 @@ "label": ".get_url()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L348", + "source_location": "L350", "_origin": "ast", "id": "app_core_storage_miniostorage_get_url", "community": 162, @@ -10657,7 +10657,7 @@ "label": "._extract_object_key()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L352", + "source_location": "L354", "_origin": "ast", "id": "app_core_storage_miniostorage_extract_object_key", "community": 172, @@ -10667,7 +10667,7 @@ "label": ".presigned_download_url()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L368", + "source_location": "L370", "_origin": "ast", "id": "app_core_storage_miniostorage_presigned_download_url", "community": 172, @@ -10677,7 +10677,7 @@ "label": ".presigned_preview_url()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L386", + "source_location": "L388", "_origin": "ast", "id": "app_core_storage_miniostorage_presigned_preview_url", "community": 172, @@ -10687,7 +10687,7 @@ "label": "get_storage()", "file_type": "code", "source_file": "app/core/storage.py", - "source_location": "L402", + "source_location": "L404", "_origin": "ast", "id": "app_core_storage_get_storage", "community": 122, @@ -10757,9 +10757,9 @@ "label": "MinIO \u9884\u7b7e\u540d\u4e0b\u8f7d URL\uff0c\u643a\u5e26\u539f\u59cb\u6587\u4ef6\u540d\u3002", "file_type": "rationale", "source_file": "app/core/storage.py", - "source_location": "L371", + "source_location": "L373", "_origin": "ast", - "id": "app_core_storage_rationale_371", + "id": "app_core_storage_rationale_373", "community": 172, "norm_label": "minio \u9884\u7b7e\u540d\u4e0b\u8f7d url,\u643a\u5e26\u539f\u59cb\u6587\u4ef6\u540d\u3002" }, @@ -10767,9 +10767,9 @@ "label": "MinIO \u9884\u7b7e\u540d\u5185\u8054\u9884\u89c8 URL\uff08PDF \u7b49 iframe \u573a\u666f\uff09\u3002", "file_type": "rationale", "source_file": "app/core/storage.py", - "source_location": "L387", + "source_location": "L389", "_origin": "ast", - "id": "app_core_storage_rationale_387", + "id": "app_core_storage_rationale_389", "community": 172, "norm_label": "minio \u9884\u7b7e\u540d\u5185\u8054\u9884\u89c8 url(pdf \u7b49 iframe \u573a\u666f)\u3002" }, @@ -10780,7 +10780,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_core_tenant_context", - "community": 30, + "community": 11, "norm_label": "tenant_context.py" }, { @@ -12060,7 +12060,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_clue_follow", - "community": 94, + "community": 112, "norm_label": "clue_follow.py" }, { @@ -12070,7 +12070,7 @@ "source_location": "L18", "_origin": "ast", "id": "app_crud_crm_clue_follow_total_pages", - "community": 94, + "community": 112, "norm_label": "total_pages()" }, { @@ -12080,7 +12080,7 @@ "source_location": "L27", "_origin": "ast", "id": "app_crud_crm_clue_follow_row_to_dict", - "community": 94, + "community": 112, "norm_label": "_row_to_dict()" }, { @@ -12090,7 +12090,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_clue_follow_py_any", - "community": 94, + "community": 112, "norm_label": "any" }, { @@ -12100,7 +12100,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_crud_crm_clue_follow_create_clue_follow", - "community": 94, + "community": 112, "norm_label": "create_clue_follow()" }, { @@ -12110,7 +12110,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_clue_follow_py_session", - "community": 94, + "community": 112, "norm_label": "session" }, { @@ -12120,7 +12120,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_crud_crm_clue_follow_update_clue_follow", - "community": 94, + "community": 112, "norm_label": "update_clue_follow()" }, { @@ -12130,7 +12130,7 @@ "source_location": "L146", "_origin": "ast", "id": "app_crud_crm_clue_follow_list_clue_follows", - "community": 94, + "community": 112, "norm_label": "list_clue_follows()" }, { @@ -12140,7 +12140,7 @@ "source_location": "L179", "_origin": "ast", "id": "app_crud_crm_clue_follow_get_clue_follow", - "community": 94, + "community": 112, "norm_label": "get_clue_follow()" }, { @@ -12150,7 +12150,7 @@ "source_location": "L200", "_origin": "ast", "id": "app_crud_crm_clue_follow_delete_clue_follow", - "community": 94, + "community": 112, "norm_label": "delete_clue_follow()" }, { @@ -12160,7 +12160,7 @@ "source_location": "L247", "_origin": "ast", "id": "app_crud_crm_clue_follow_get_follow_statistics", - "community": 94, + "community": 112, "norm_label": "get_follow_statistics()" }, { @@ -12170,7 +12170,7 @@ "source_location": "L54", "_origin": "ast", "id": "app_crud_crm_clue_follow_rationale_54", - "community": 94, + "community": 112, "norm_label": "\u521b\u5efa\u7ebf\u7d22\u8ddf\u8fdb\u8bb0\u5f55,\u5e76\u7ea7\u8054\u66f4\u65b0\u7236\u7ebf\u7d22\u7684\u8ddf\u8fdb\u76f8\u5173\u5b57\u6bb5" }, { @@ -12180,7 +12180,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_crud_crm_clue_follow_rationale_108", - "community": 94, + "community": 112, "norm_label": "\u66f4\u65b0\u7ebf\u7d22\u8ddf\u8fdb\u8bb0\u5f55,\u5fc5\u8981\u65f6\u540c\u6b65\u7ebf\u7d22 next_time" }, { @@ -12190,7 +12190,7 @@ "source_location": "L206", "_origin": "ast", "id": "app_crud_crm_clue_follow_rationale_206", - "community": 94, + "community": 112, "norm_label": "\u8f6f\u5220\u9664\u8ddf\u8fdb\u8bb0\u5f55,\u5e76\u56de\u5199\u7ebf\u7d22 follow_count / last_time" }, { @@ -14580,7 +14580,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers", - "community": 94, + "community": 112, "norm_label": "data_scope_helpers.py" }, { @@ -14620,7 +14620,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_py_session", - "community": 94, + "community": 112, "norm_label": "session" }, { @@ -14630,7 +14630,7 @@ "source_location": "L33", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_apply_crm_create_by_scope", - "community": 94, + "community": 112, "norm_label": "apply_crm_create_by_scope()" }, { @@ -14650,7 +14650,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_ensure_crm_create_by_row_in_scope", - "community": 94, + "community": 112, "norm_label": "ensure_crm_create_by_row_in_scope()" }, { @@ -14680,7 +14680,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_data_scope_helpers_rationale_1", - "community": 94, + "community": 112, "norm_label": "crm \u6570\u636e\u6743\u9650\u8f85\u52a9(\u8d1f\u8d23\u4eba owner_user_id + \u6807\u51c6 create_by/create_dept_id)\u3002" }, { @@ -15870,7 +15870,7 @@ "source_location": "L42", "_origin": "ast", "id": "app_crud_crm_product_category_row_to_dict", - "community": 107, + "community": 144, "norm_label": "_category_row_to_dict()" }, { @@ -15890,7 +15890,7 @@ "source_location": "L58", "_origin": "ast", "id": "app_crud_crm_product_list_categories", - "community": 107, + "community": 144, "norm_label": "list_categories()" }, { @@ -16280,7 +16280,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_crud_crm_product_rationale_43", - "community": 107, + "community": 144, "norm_label": "\u5206\u7c7b orm \u5bf9\u8c61\u8f6c dict(camelcase \u952e\u540d)" }, { @@ -16290,7 +16290,7 @@ "source_location": "L66", "_origin": "ast", "id": "app_crud_crm_product_rationale_66", - "community": 107, + "community": 144, "norm_label": "\u83b7\u53d6\u5206\u7c7b(\u6241\u5e73\u5217\u8868,\u652f\u6301\u540d\u79f0\u6a21\u7cca\u4e0e\u72b6\u6001\u7b5b\u9009)" }, { @@ -17710,7 +17710,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_crud_crm_statistics", - "community": 137, + "community": 107, "norm_label": "statistics.py" }, { @@ -17720,7 +17720,7 @@ "source_location": "L14", "_origin": "ast", "id": "app_crud_crm_statistics_customer_base_query", - "community": 137, + "community": 107, "norm_label": "_customer_base_query()" }, { @@ -17730,7 +17730,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_statistics_py_session", - "community": 137, + "community": 107, "norm_label": "session" }, { @@ -17740,7 +17740,7 @@ "source_location": "L24", "_origin": "ast", "id": "app_crud_crm_statistics_get_overview_statistics", - "community": 137, + "community": 107, "norm_label": "get_overview_statistics()" }, { @@ -17750,7 +17750,7 @@ "source_location": "", "_origin": "ast", "id": "app_crud_crm_statistics_py_any", - "community": 137, + "community": 107, "norm_label": "any" }, { @@ -17760,7 +17760,7 @@ "source_location": "L46", "_origin": "ast", "id": "app_crud_crm_statistics_get_source_statistics", - "community": 137, + "community": 107, "norm_label": "get_source_statistics()" }, { @@ -17770,7 +17770,7 @@ "source_location": "L59", "_origin": "ast", "id": "app_crud_crm_statistics_get_level_statistics", - "community": 137, + "community": 107, "norm_label": "get_level_statistics()" }, { @@ -17780,7 +17780,7 @@ "source_location": "L72", "_origin": "ast", "id": "app_crud_crm_statistics_get_industry_statistics", - "community": 137, + "community": 107, "norm_label": "get_industry_statistics()" }, { @@ -17790,7 +17790,7 @@ "source_location": "L85", "_origin": "ast", "id": "app_crud_crm_statistics_get_trend_statistics", - "community": 137, + "community": 107, "norm_label": "get_trend_statistics()" }, { @@ -17800,7 +17800,7 @@ "source_location": "L108", "_origin": "ast", "id": "app_crud_crm_statistics_get_owner_statistics", - "community": 137, + "community": 107, "norm_label": "get_owner_statistics()" }, { @@ -17810,7 +17810,7 @@ "source_location": "L124", "_origin": "ast", "id": "app_crud_crm_statistics_get_follow_statistics", - "community": 137, + "community": 107, "norm_label": "get_follow_statistics()" }, { @@ -17820,7 +17820,7 @@ "source_location": "L27", "_origin": "ast", "id": "app_crud_crm_statistics_rationale_27", - "community": 137, + "community": 107, "norm_label": "\u5ba2\u6237\u7edf\u8ba1\u6982\u89c8:\u5ba2\u6237\u603b\u6570\u3001\u516c\u6d77\u6c60\u6570\u3001\u672c\u6708\u65b0\u589e\u3001\u6210\u4ea4\u6570" }, { @@ -20860,7 +20860,7 @@ "source_location": "L990", "_origin": "ast", "id": "app_models_crm_models_crmcluefollow", - "community": 94, + "community": 112, "norm_label": "crmcluefollow" }, { @@ -22360,7 +22360,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_schemas_bx_advance_advanceissuerequest", - "community": 18, + "community": 137, "norm_label": "advanceissuerequest" }, { @@ -22370,7 +22370,7 @@ "source_location": "L138", "_origin": "ast", "id": "app_schemas_bx_advance_advanceoffsetrecordout", - "community": 18, + "community": 137, "norm_label": "advanceoffsetrecordout" }, { @@ -22410,7 +22410,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_bx_common", - "community": 33, + "community": 18, "norm_label": "common.py" }, { @@ -22420,7 +22420,7 @@ "source_location": "L11", "_origin": "ast", "id": "app_schemas_bx_common_dt_to_str", - "community": 33, + "community": 18, "norm_label": "_dt_to_str()" }, { @@ -22430,7 +22430,7 @@ "source_location": "", "_origin": "ast", "id": "app_schemas_bx_common_py_datetime", - "community": 33, + "community": 18, "norm_label": "datetime" }, { @@ -22440,7 +22440,7 @@ "source_location": "L17", "_origin": "ast", "id": "app_schemas_bx_common_date_to_str", - "community": 33, + "community": 18, "norm_label": "_date_to_str()" }, { @@ -22450,7 +22450,7 @@ "source_location": "", "_origin": "ast", "id": "app_schemas_bx_common_py_date", - "community": 33, + "community": 18, "norm_label": "date" }, { @@ -22460,7 +22460,7 @@ "source_location": "L29", "_origin": "ast", "id": "app_schemas_bx_common_pagedquery", - "community": 33, + "community": 18, "norm_label": "pagedquery" }, { @@ -22470,7 +22470,7 @@ "source_location": "L36", "_origin": "ast", "id": "app_schemas_bx_common_apiresponse", - "community": 18, + "community": 60, "norm_label": "apiresponse" }, { @@ -22490,7 +22490,7 @@ "source_location": "L51", "_origin": "ast", "id": "app_schemas_bx_common_pagedresponse", - "community": 33, + "community": 18, "norm_label": "pagedresponse" }, { @@ -22500,7 +22500,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_bx_common_rationale_1", - "community": 33, + "community": 18, "norm_label": "bx \u539f\u7cfb\u7edf api \u54cd\u5e94\u5305\u88c5(code=0 / msg / data.rows),\u4e0e\u95e8\u6237 success_response \u5206\u79bb\u3002" }, { @@ -22750,7 +22750,7 @@ "source_location": "L100", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimburseapplyupdate", - "community": 15, + "community": 60, "norm_label": "reimburseapplyupdate" }, { @@ -22770,7 +22770,7 @@ "source_location": "L117", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimbursesubmitbody", - "community": 15, + "community": 60, "norm_label": "reimbursesubmitbody" }, { @@ -22790,7 +22790,7 @@ "source_location": "L154", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimburseapprovalcreate", - "community": 15, + "community": 60, "norm_label": "reimburseapprovalcreate" }, { @@ -22830,7 +22830,7 @@ "source_location": "L193", "_origin": "ast", "id": "app_schemas_bx_reimburse_payrequest", - "community": 18, + "community": 137, "norm_label": "payrequest" }, { @@ -22840,7 +22840,7 @@ "source_location": "L200", "_origin": "ast", "id": "app_schemas_bx_reimburse_offsetrequest", - "community": 18, + "community": 137, "norm_label": "offsetrequest" }, { @@ -22880,7 +22880,7 @@ "source_location": "L231", "_origin": "ast", "id": "app_schemas_bx_reimburse_batchoffsetrequest", - "community": 18, + "community": 137, "norm_label": "batchoffsetrequest" }, { @@ -22890,7 +22890,7 @@ "source_location": "L239", "_origin": "ast", "id": "app_schemas_bx_reimburse_reimburseoffsetrecordout", - "community": 18, + "community": 137, "norm_label": "reimburseoffsetrecordout" }, { @@ -23070,7 +23070,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_clue", - "community": 107, + "community": 39, "norm_label": "clue.py" }, { @@ -23090,7 +23090,7 @@ "source_location": "L43", "_origin": "ast", "id": "app_schemas_crm_clue_cluecreatebody", - "community": 107, + "community": 39, "norm_label": "cluecreatebody" }, { @@ -23100,7 +23100,7 @@ "source_location": "L74", "_origin": "ast", "id": "app_schemas_crm_clue_clueupdatebody", - "community": 107, + "community": 39, "norm_label": "clueupdatebody" }, { @@ -23110,7 +23110,7 @@ "source_location": "L81", "_origin": "ast", "id": "app_schemas_crm_clue_cluedeletebody", - "community": 107, + "community": 39, "norm_label": "cluedeletebody" }, { @@ -23120,7 +23120,7 @@ "source_location": "L87", "_origin": "ast", "id": "app_schemas_crm_clue_clueassignbody", - "community": 107, + "community": 39, "norm_label": "clueassignbody" }, { @@ -23130,7 +23130,7 @@ "source_location": "L95", "_origin": "ast", "id": "app_schemas_crm_clue_clueconvertbody", - "community": 107, + "community": 39, "norm_label": "clueconvertbody" }, { @@ -23140,7 +23140,7 @@ "source_location": "L106", "_origin": "ast", "id": "app_schemas_crm_clue_cluestatusbody", - "community": 107, + "community": 39, "norm_label": "cluestatusbody" }, { @@ -23150,7 +23150,7 @@ "source_location": "L113", "_origin": "ast", "id": "app_schemas_crm_clue_cluelevelbody", - "community": 107, + "community": 39, "norm_label": "cluelevelbody" }, { @@ -23160,7 +23160,7 @@ "source_location": "L120", "_origin": "ast", "id": "app_schemas_crm_clue_clueinvalidbody", - "community": 107, + "community": 39, "norm_label": "clueinvalidbody" }, { @@ -23170,7 +23170,7 @@ "source_location": "L131", "_origin": "ast", "id": "app_schemas_crm_clue_cluefollowlistbody", - "community": 107, + "community": 64, "norm_label": "cluefollowlistbody" }, { @@ -23180,7 +23180,7 @@ "source_location": "L139", "_origin": "ast", "id": "app_schemas_crm_clue_cluefollowcreatebody", - "community": 107, + "community": 64, "norm_label": "cluefollowcreatebody" }, { @@ -23190,7 +23190,7 @@ "source_location": "L150", "_origin": "ast", "id": "app_schemas_crm_clue_cluefollowdeletebody", - "community": 107, + "community": 64, "norm_label": "cluefollowdeletebody" }, { @@ -23200,7 +23200,7 @@ "source_location": "L156", "_origin": "ast", "id": "app_schemas_crm_clue_cluefollowupdatebody", - "community": 107, + "community": 64, "norm_label": "cluefollowupdatebody" }, { @@ -23220,7 +23220,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_clue_rationale_1", - "community": 107, + "community": 39, "norm_label": "crm \u7ebf\u7d22\u7ba1\u7406 pydantic schemas" }, { @@ -24590,7 +24590,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_product", - "community": 107, + "community": 144, "norm_label": "product.py" }, { @@ -24600,7 +24600,7 @@ "source_location": "L12", "_origin": "ast", "id": "app_schemas_crm_product_productcategorycreatebody", - "community": 107, + "community": 144, "norm_label": "productcategorycreatebody" }, { @@ -24610,7 +24610,7 @@ "source_location": "L26", "_origin": "ast", "id": "app_schemas_crm_product_productcategoryupdatebody", - "community": 107, + "community": 144, "norm_label": "productcategoryupdatebody" }, { @@ -24630,7 +24630,7 @@ "source_location": "L47", "_origin": "ast", "id": "app_schemas_crm_product_productcategorytreebody", - "community": 107, + "community": 144, "norm_label": "productcategorytreebody" }, { @@ -24700,7 +24700,7 @@ "source_location": "L169", "_origin": "ast", "id": "app_schemas_crm_product_productdetailbody", - "community": 107, + "community": 144, "norm_label": "productdetailbody" }, { @@ -24710,7 +24710,7 @@ "source_location": "L175", "_origin": "ast", "id": "app_schemas_crm_product_productdeletebody", - "community": 107, + "community": 144, "norm_label": "productdeletebody" }, { @@ -24730,7 +24730,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_product_rationale_1", - "community": 107, + "community": 144, "norm_label": "crm \u4ea7\u54c1\u6a21\u5757 pydantic schemas" }, { @@ -24740,7 +24740,7 @@ "source_location": "L48", "_origin": "ast", "id": "app_schemas_crm_product_rationale_48", - "community": 107, + "community": 144, "norm_label": "\u4ea7\u54c1\u5206\u7c7b\u6811\u67e5\u8be2(\u5bc6\u6587\u89e3\u5bc6\u540e\u987b\u7528 pydantic \u7ed1\u5b9a,\u88f8 dict=none \u5728\u90e8\u5206\u94fe\u8def\u4e0b\u4f1a\u4e22 body)" }, { @@ -25080,7 +25080,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_statistics", - "community": 64, + "community": 107, "norm_label": "statistics.py" }, { @@ -25090,7 +25090,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_crm_statistics_statisticsbody", - "community": 64, + "community": 107, "norm_label": "statisticsbody" }, { @@ -25100,7 +25100,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_schemas_crm_statistics_rationale_1", - "community": 64, + "community": 107, "norm_label": "crm \u7edf\u8ba1\u5206\u6790 pydantic schemas" }, { @@ -25120,7 +25120,7 @@ "source_location": "L8", "_origin": "ast", "id": "app_schemas_crm_supplier_info_supplierinfolistbody", - "community": 112, + "community": 107, "norm_label": "supplierinfolistbody" }, { @@ -28270,7 +28270,7 @@ "source_location": "L560", "_origin": "ast", "id": "app_services_bx_advance_advanceservice_offset_amount_map", - "community": 18, + "community": 137, "norm_label": ".offset_amount_map()" }, { @@ -29100,7 +29100,7 @@ "source_location": "L71", "_origin": "ast", "id": "app_services_bx_reimburse_reimburseservice_resolve_applicant", - "community": 15, + "community": 60, "norm_label": ".resolve_applicant()" }, { @@ -29500,7 +29500,7 @@ "source_location": "L78", "_origin": "ast", "id": "app_services_bx_reimburse_rationale_78", - "community": 15, + "community": 60, "norm_label": "\u89e3\u6790\u62a5\u9500\u7533\u8bf7\u4eba\u3002 \u65e0 changeapplicant \u6743\u9650\u65f6\u5ffd\u7565\u5ba2\u6237\u7aef\u6307\u5b9a,\u5f3a\u5236\u672c\u4eba; \u6709\u6743\u9650\u65f6\u53ef\u6307\u5b9a\u540c\u79df\u6237\u6709\u6548\u7528\u6237\u3002" }, { @@ -29547,7 +29547,7 @@ "label": "normalize_storage_path()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L12", + "source_location": "L11", "_origin": "ast", "id": "app_services_bx_storage_normalize_storage_path", "community": 122, @@ -29557,7 +29557,7 @@ "label": "upload_bx_file()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L32", + "source_location": "L31", "_origin": "ast", "id": "app_services_bx_storage_upload_bx_file", "community": 122, @@ -29567,7 +29567,7 @@ "label": "get_access_url()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L45", + "source_location": "L44", "_origin": "ast", "id": "app_services_bx_storage_get_access_url", "community": 122, @@ -29577,7 +29577,7 @@ "label": "get_preview_url()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L54", + "source_location": "L53", "_origin": "ast", "id": "app_services_bx_storage_get_preview_url", "community": 122, @@ -29587,7 +29587,7 @@ "label": "get_download_url()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L66", + "source_location": "L65", "_origin": "ast", "id": "app_services_bx_storage_get_download_url", "community": 122, @@ -29597,7 +29597,7 @@ "label": "download_file_bytes()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L73", + "source_location": "L72", "_origin": "ast", "id": "app_services_bx_storage_download_file_bytes", "community": 122, @@ -29607,7 +29607,7 @@ "label": "file_stream()", "file_type": "code", "source_file": "app/services/bx/storage.py", - "source_location": "L99", + "source_location": "L98", "_origin": "ast", "id": "app_services_bx_storage_file_stream", "community": 122, @@ -29637,9 +29637,9 @@ "label": "\u5c06 upload \u8fd4\u56de\u7684\u5b8c\u6574 URL \u5f52\u4e00\u5316\u4e3a\u5b58\u50a8\u76f8\u5bf9\u8def\u5f84\uff08\u4e0e admin \u9644\u4ef6 upload \u4e00\u81f4\uff09\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L13", + "source_location": "L12", "_origin": "ast", - "id": "app_services_bx_storage_rationale_13", + "id": "app_services_bx_storage_rationale_12", "community": 122, "norm_label": "\u5c06 upload \u8fd4\u56de\u7684\u5b8c\u6574 url \u5f52\u4e00\u5316\u4e3a\u5b58\u50a8\u76f8\u5bf9\u8def\u5f84(\u4e0e admin \u9644\u4ef6 upload \u4e00\u81f4)\u3002" }, @@ -29647,9 +29647,9 @@ "label": "\u4e0a\u4f20\u6587\u4ef6\u5230\u5bf9\u8c61\u5b58\u50a8\u3002 \u8fd4\u56de (relative_path, access_url)\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L33", + "source_location": "L32", "_origin": "ast", - "id": "app_services_bx_storage_rationale_33", + "id": "app_services_bx_storage_rationale_32", "community": 122, "norm_label": "\u4e0a\u4f20\u6587\u4ef6\u5230\u5bf9\u8c61\u5b58\u50a8\u3002 \u8fd4\u56de (relative_path, access_url)\u3002" }, @@ -29657,9 +29657,9 @@ "label": "\u83b7\u53d6\u53ef\u8bbf\u95ee URL\uff08\u672c\u5730/MinIO \u516c\u5f00\u5730\u5740\uff09\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L46", + "source_location": "L45", "_origin": "ast", - "id": "app_services_bx_storage_rationale_46", + "id": "app_services_bx_storage_rationale_45", "community": 122, "norm_label": "\u83b7\u53d6\u53ef\u8bbf\u95ee url(\u672c\u5730/minio \u516c\u5f00\u5730\u5740)\u3002" }, @@ -29667,9 +29667,9 @@ "label": "\u56fe\u7247/\u9644\u4ef6\u9884\u89c8 URL\uff1aMinIO \u9884\u7b7e\u540d inline\uff0c\u672c\u5730/\u5176\u4ed6\u5b58\u50a8\u7528 get_url\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L55", + "source_location": "L54", "_origin": "ast", - "id": "app_services_bx_storage_rationale_55", + "id": "app_services_bx_storage_rationale_54", "community": 122, "norm_label": "\u56fe\u7247/\u9644\u4ef6\u9884\u89c8 url:minio \u9884\u7b7e\u540d inline,\u672c\u5730/\u5176\u4ed6\u5b58\u50a8\u7528 get_url\u3002" }, @@ -29677,9 +29677,9 @@ "label": "\u5e26\u6587\u4ef6\u540d\u7684\u4e0b\u8f7d URL\uff08\u5bf9\u9f50\u95e8\u6237 attachment/download-url\uff09\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L67", + "source_location": "L66", "_origin": "ast", - "id": "app_services_bx_storage_rationale_67", + "id": "app_services_bx_storage_rationale_66", "community": 122, "norm_label": "\u5e26\u6587\u4ef6\u540d\u7684\u4e0b\u8f7d url(\u5bf9\u9f50\u95e8\u6237 attachment/download-url)\u3002" }, @@ -29687,9 +29687,9 @@ "label": "\u8bfb\u53d6\u6587\u4ef6\u4e8c\u8fdb\u5236\uff0c\u4f9b StreamingResponse \u4e0b\u8f7d\u3002", "file_type": "rationale", "source_file": "app/services/bx/storage.py", - "source_location": "L74", + "source_location": "L73", "_origin": "ast", - "id": "app_services_bx_storage_rationale_74", + "id": "app_services_bx_storage_rationale_73", "community": 122, "norm_label": "\u8bfb\u53d6\u6587\u4ef6\u4e8c\u8fdb\u5236,\u4f9b streamingresponse \u4e0b\u8f7d\u3002" }, @@ -30330,7 +30330,7 @@ "source_location": "L35", "_origin": "ast", "id": "app_services_db_mappers_plan_to_read", - "community": 81, + "community": 27, "norm_label": "plan_to_read()" }, { @@ -30480,7 +30480,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_product_helpers", - "community": 27, + "community": 173, "norm_label": "product_helpers.py" }, { @@ -30490,7 +30490,7 @@ "source_location": "L13", "_origin": "ast", "id": "app_services_db_product_helpers_productsnapshot", - "community": 27, + "community": 173, "norm_label": "productsnapshot" }, { @@ -30500,7 +30500,7 @@ "source_location": "L19", "_origin": "ast", "id": "app_services_db_product_helpers_resolve_crm_product", - "community": 27, + "community": 173, "norm_label": "resolve_crm_product()" }, { @@ -30510,7 +30510,7 @@ "source_location": "", "_origin": "ast", "id": "app_services_db_product_helpers_py_session", - "community": 27, + "community": 173, "norm_label": "session" }, { @@ -30530,7 +30530,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_services_db_product_helpers_apply_product_snapshot_to_inventory", - "community": 27, + "community": 173, "norm_label": "apply_product_snapshot_to_inventory()" }, { @@ -30550,7 +30550,7 @@ "source_location": "L1", "_origin": "ast", "id": "app_services_db_product_helpers_rationale_1", - "community": 27, + "community": 173, "norm_label": "\u5730\u78c5\u6a21\u5757 \u2014 crm \u4ea7\u54c1\u89e3\u6790\u4e0e\u5feb\u7167\u5199\u5165\u3002" }, { @@ -30560,7 +30560,7 @@ "source_location": "L20", "_origin": "ast", "id": "app_services_db_product_helpers_rationale_20", - "community": 27, + "community": 173, "norm_label": "\u6821\u9a8c crm \u4ea7\u54c1\u5e76\u8fd4\u56de\u540d\u79f0/\u89c4\u683c\u5feb\u7167\u3002\u65b0\u5efa\u5355\u636e product_id \u5fc5\u586b\u3002" }, { @@ -35670,7 +35670,7 @@ "source_location": "L57", "_origin": "ast", "id": "app_utils_bx_date_range_append_create_time_filters", - "community": 18, + "community": 137, "norm_label": "append_create_time_filters()" }, { @@ -35840,7 +35840,7 @@ "source_location": "L104", "_origin": "ast", "id": "app_utils_excel_export_workbook_to_streaming_response", - "community": 144, + "community": 107, "norm_label": "workbook_to_streaming_response()" }, { @@ -35850,7 +35850,7 @@ "source_location": "", "_origin": "ast", "id": "streamingresponse", - "community": 144, + "community": 107, "norm_label": "streamingresponse" }, { @@ -35860,7 +35860,7 @@ "source_location": "L124", "_origin": "ast", "id": "app_utils_excel_export_export_rows_to_xlsx_response", - "community": 144, + "community": 107, "norm_label": "export_rows_to_xlsx_response()" }, { @@ -35910,7 +35910,7 @@ "source_location": "L134", "_origin": "ast", "id": "app_utils_excel_export_rationale_134", - "community": 144, + "community": 107, "norm_label": "crm \u5217\u8868\u5bfc\u51fa\u7edf\u4e00\u5165\u53e3:\u8868\u5934 + \u884c\u6570\u636e + \u5b57\u5178 label \u8f6c\u6362 + \u6587\u4ef6\u6d41\u54cd\u5e94\u3002" }, { @@ -39860,7 +39860,7 @@ "source_location": "L83", "_origin": "ast", "id": "scripts_migration_minio_url_normalize_oss_storage_url", - "community": 132, + "community": 72, "norm_label": "normalize_oss_storage_url()" }, { @@ -39920,7 +39920,7 @@ "source_location": "L89", "_origin": "ast", "id": "scripts_migration_minio_url_rationale_89", - "community": 132, + "community": 72, "norm_label": "\u8fc1\u79fb crm ``sys_oss`` \u884c:``url`` + ``file_name`` \u2192 \u95e8\u6237\u76f8\u5bf9\u8def\u5f84\u3002" }, { @@ -107603,7 +107603,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/core/storage.py", - "source_location": "L382", + "source_location": "L384", "weight": 1.0, "source": "app_core_storage_miniostorage_presigned_download_url", "target": "timedelta" @@ -107614,7 +107614,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/core/storage.py", - "source_location": "L397", + "source_location": "L399", "weight": 1.0, "source": "app_core_storage_miniostorage_presigned_preview_url", "target": "timedelta" @@ -109375,7 +109375,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L8", + "source_location": "L7", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_core_config", @@ -115257,7 +115257,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L402", + "source_location": "L404", "weight": 1.0, "source": "app_core_storage", "target": "app_core_storage_get_storage", @@ -115328,7 +115328,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L9", + "source_location": "L8", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_core_storage", @@ -115382,7 +115382,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L317", + "source_location": "L319", "weight": 1.0, "source": "app_core_storage_miniostorage_upload_file", "target": "app_core_storage_process_image_content", @@ -115485,7 +115485,7 @@ "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L402", + "source_location": "L404", "weight": 1.0, "source": "app_core_storage_get_storage", "target": "app_core_storage_basestorage", @@ -115578,7 +115578,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L413", + "source_location": "L415", "weight": 1.0, "source": "app_core_storage_get_storage", "target": "app_core_storage_localstorage", @@ -115659,7 +115659,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L9", + "source_location": "L8", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_core_storage_localstorage", @@ -115736,7 +115736,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L407", + "source_location": "L409", "weight": 1.0, "source": "app_core_storage_get_storage", "target": "app_core_storage_qiniustorage", @@ -115840,7 +115840,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L409", + "source_location": "L411", "weight": 1.0, "source": "app_core_storage_get_storage", "target": "app_core_storage_ossstorage", @@ -115944,7 +115944,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L411", + "source_location": "L413", "weight": 1.0, "source": "app_core_storage_get_storage", "target": "app_core_storage_miniostorage", @@ -115964,7 +115964,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L339", + "source_location": "L341", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_delete_file", @@ -115974,7 +115974,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L352", + "source_location": "L354", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_extract_object_key", @@ -115984,7 +115984,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L308", + "source_location": "L310", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_generate_filename", @@ -115994,7 +115994,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L348", + "source_location": "L350", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_get_url", @@ -116014,7 +116014,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L368", + "source_location": "L370", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_presigned_download_url", @@ -116024,7 +116024,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L386", + "source_location": "L388", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_presigned_preview_url", @@ -116034,7 +116034,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L331", + "source_location": "L333", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_upload_base64", @@ -116044,7 +116044,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L314", + "source_location": "L316", "weight": 1.0, "source": "app_core_storage_miniostorage", "target": "app_core_storage_miniostorage_upload_file", @@ -116055,7 +116055,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L9", + "source_location": "L8", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_core_storage_miniostorage", @@ -116098,7 +116098,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L319", + "source_location": "L321", "weight": 1.0, "source": "app_core_storage_miniostorage_upload_file", "target": "app_core_storage_miniostorage_generate_filename", @@ -116109,7 +116109,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L337", + "source_location": "L339", "weight": 1.0, "source": "app_core_storage_miniostorage_upload_base64", "target": "app_core_storage_miniostorage_upload_file", @@ -116120,7 +116120,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L329", + "source_location": "L331", "weight": 1.0, "source": "app_core_storage_miniostorage_upload_file", "target": "app_core_storage_miniostorage_get_url", @@ -116132,7 +116132,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "app/core/storage.py", - "source_location": "L322", + "source_location": "L324", "weight": 1.0, "source": "app_core_storage_miniostorage_upload_file", "target": "bytesio" @@ -116142,7 +116142,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L372", + "source_location": "L374", "weight": 1.0, "source": "app_core_storage_miniostorage_presigned_download_url", "target": "app_core_storage_miniostorage_extract_object_key", @@ -116153,7 +116153,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L388", + "source_location": "L390", "weight": 1.0, "source": "app_core_storage_miniostorage_presigned_preview_url", "target": "app_core_storage_miniostorage_extract_object_key", @@ -116163,9 +116163,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L371", + "source_location": "L373", "weight": 1.0, - "source": "app_core_storage_rationale_371", + "source": "app_core_storage_rationale_373", "target": "app_core_storage_miniostorage_presigned_download_url", "confidence_score": 1.0 }, @@ -116173,9 +116173,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/core/storage.py", - "source_location": "L387", + "source_location": "L389", "weight": 1.0, - "source": "app_core_storage_rationale_387", + "source": "app_core_storage_rationale_389", "target": "app_core_storage_miniostorage_presigned_preview_url", "confidence_score": 1.0 }, @@ -116184,7 +116184,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L9", + "source_location": "L8", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_core_storage_get_storage", @@ -116195,7 +116195,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L75", + "source_location": "L74", "weight": 1.0, "source": "app_services_bx_storage_download_file_bytes", "target": "app_core_storage_get_storage", @@ -116206,7 +116206,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L47", + "source_location": "L46", "weight": 1.0, "source": "app_services_bx_storage_get_access_url", "target": "app_core_storage_get_storage", @@ -116217,7 +116217,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L68", + "source_location": "L67", "weight": 1.0, "source": "app_services_bx_storage_get_download_url", "target": "app_core_storage_get_storage", @@ -116228,7 +116228,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L56", + "source_location": "L55", "weight": 1.0, "source": "app_services_bx_storage_get_preview_url", "target": "app_core_storage_get_storage", @@ -116239,7 +116239,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L26", + "source_location": "L25", "weight": 1.0, "source": "app_services_bx_storage_normalize_storage_path", "target": "app_core_storage_get_storage", @@ -180209,7 +180209,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L73", + "source_location": "L72", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_download_file_bytes", @@ -180219,7 +180219,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L99", + "source_location": "L98", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_file_stream", @@ -180229,7 +180229,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L45", + "source_location": "L44", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_get_access_url", @@ -180239,7 +180239,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L66", + "source_location": "L65", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_get_download_url", @@ -180249,7 +180249,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L54", + "source_location": "L53", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_get_preview_url", @@ -180259,7 +180259,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L12", + "source_location": "L11", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_normalize_storage_path", @@ -180269,7 +180269,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L32", + "source_location": "L31", "weight": 1.0, "source": "app_services_bx_storage", "target": "app_services_bx_storage_upload_bx_file", @@ -180290,7 +180290,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L76", + "source_location": "L75", "weight": 1.0, "source": "app_services_bx_storage_download_file_bytes", "target": "app_services_bx_storage_normalize_storage_path", @@ -180301,7 +180301,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L48", + "source_location": "L47", "weight": 1.0, "source": "app_services_bx_storage_get_access_url", "target": "app_services_bx_storage_normalize_storage_path", @@ -180312,7 +180312,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L69", + "source_location": "L68", "weight": 1.0, "source": "app_services_bx_storage_get_download_url", "target": "app_services_bx_storage_normalize_storage_path", @@ -180323,7 +180323,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L57", + "source_location": "L56", "weight": 1.0, "source": "app_services_bx_storage_get_preview_url", "target": "app_services_bx_storage_normalize_storage_path", @@ -180333,9 +180333,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L13", + "source_location": "L12", "weight": 1.0, - "source": "app_services_bx_storage_rationale_13", + "source": "app_services_bx_storage_rationale_12", "target": "app_services_bx_storage_normalize_storage_path", "confidence_score": 1.0 }, @@ -180344,7 +180344,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L41", + "source_location": "L40", "weight": 1.0, "source": "app_services_bx_storage_upload_bx_file", "target": "app_services_bx_storage_normalize_storage_path", @@ -180354,9 +180354,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L33", + "source_location": "L32", "weight": 1.0, - "source": "app_services_bx_storage_rationale_33", + "source": "app_services_bx_storage_rationale_32", "target": "app_services_bx_storage_upload_bx_file", "confidence_score": 1.0 }, @@ -180364,9 +180364,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L46", + "source_location": "L45", "weight": 1.0, - "source": "app_services_bx_storage_rationale_46", + "source": "app_services_bx_storage_rationale_45", "target": "app_services_bx_storage_get_access_url", "confidence_score": 1.0 }, @@ -180374,9 +180374,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L55", + "source_location": "L54", "weight": 1.0, - "source": "app_services_bx_storage_rationale_55", + "source": "app_services_bx_storage_rationale_54", "target": "app_services_bx_storage_get_preview_url", "confidence_score": 1.0 }, @@ -180384,9 +180384,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L67", + "source_location": "L66", "weight": 1.0, - "source": "app_services_bx_storage_rationale_67", + "source": "app_services_bx_storage_rationale_66", "target": "app_services_bx_storage_get_download_url", "confidence_score": 1.0 }, @@ -180395,7 +180395,7 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L100", + "source_location": "L99", "weight": 1.0, "source": "app_services_bx_storage_file_stream", "target": "app_services_bx_storage_download_file_bytes", @@ -180405,9 +180405,9 @@ "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L74", + "source_location": "L73", "weight": 1.0, - "source": "app_services_bx_storage_rationale_74", + "source": "app_services_bx_storage_rationale_73", "target": "app_services_bx_storage_download_file_bytes", "confidence_score": 1.0 }, @@ -180438,7 +180438,7 @@ "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/services/bx/storage.py", - "source_location": "L99", + "source_location": "L98", "weight": 1.0, "source": "app_services_bx_storage_file_stream", "target": "bytesio", @@ -210681,5 +210681,5 @@ } ], "hyperedges": [], - "built_at_commit": "e59b2aa6cb4190898da0e1e59e13bf189b7906d8" + "built_at_commit": "eccefc6650afee08ebc71bcb8ba93fe5dba91333" } \ No newline at end of file diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index ce573ef64..66fafc5b8 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ # Graph Report - backend (2026-08-02) ## Corpus Check -- 301 files · ~206,686 words +- 303 files · ~206,845 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 4543 nodes · 15453 edges · 532 communities (514 shown, 18 thin omitted) +- 4549 nodes · 15463 edges · 532 communities (514 shown, 18 thin omitted) - Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 410 edges (avg confidence: 0.53) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `eccefc66` +- Built from commit: `8d9f5777` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -201,220 +201,220 @@ ## Communities (532 total, 18 thin omitted) ### Community 0 - "Community 0" -Cohesion: 0.14 -Nodes (15): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, current_month_bounds() (+7 more) +Cohesion: 0.15 +Nodes (11): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, Any (+3 more) ### Community 1 - "Community 1" -Cohesion: 0.28 -Nodes (5): PublishVersionBody, WfNode, Any, Session, WorkflowEngine +Cohesion: 0.15 +Nodes (22): _build_quote_filters(), _decimal_value(), _fill_contract_linked_count(), list_quotes(), _parse_optional_datetime(), _period_key(), Any, datetime (+14 more) ### Community 2 - "Community 2" Cohesion: 0.30 Nodes (12): PlCarrier, assert_carrier_eligible_for_transport(), carrier_agreement_expired(), carrier_audit_approved(), carrier_eligible_for_transport(), carrier_qualification_complete(), date, 资质附件均为选填,保留函数签名供兼容调用。 (+4 more) ### Community 3 - "Community 3" -Cohesion: 0.07 -Nodes (66): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post(), create_role_management() (+58 more) +Cohesion: 0.08 +Nodes (87): attachment_download_url(), attachment_preview_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post() (+79 more) ### Community 4 - "Community 4" -Cohesion: 0.17 -Nodes (43): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+35 more) +Cohesion: 0.09 +Nodes (76): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+68 more) ### Community 5 - "Community 5" Cohesion: 0.20 Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more) ### Community 6 - "Community 6" -Cohesion: 0.27 -Nodes (26): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, MenuCreateBody (+18 more) +Cohesion: 0.28 +Nodes (17): _address_to_read(), _build_address_query(), create_transport_address(), delete_transport_address(), _get_address(), get_transport_address(), list_all_transport_addresses(), list_transport_addresses() (+9 more) ### Community 7 - "Community 7" Cohesion: 0.12 Nodes (36): get_password_hash(), Namespace, build_merged_users(), bx_role_labels(), check_minio(), check_mysql(), check_redis(), _clip() (+28 more) ### Community 8 - "Community 8" -Cohesion: 0.09 -Nodes (71): register_quote_routes(), create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id, accept_quote(), _build_quote_filters(), calculate_quote_amount(), create_new_version() (+63 more) +Cohesion: 0.13 +Nodes (48): register_quote_routes(), create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id, accept_quote(), calculate_quote_amount(), create_new_version(), create_quote() (+40 more) ### Community 11 - "Community 11" Cohesion: 0.10 -Nodes (54): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), get_apply(), get_disburse(), list_applies() (+46 more) +Nodes (55): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), get_apply(), get_disburse(), list_applies() (+47 more) ### Community 12 - "Community 12" -Cohesion: 0.07 -Nodes (43): AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest, UserCreate (+35 more) +Cohesion: 0.05 +Nodes (67): contact_add(), contact_delete(), contact_update(), customer_create(), customer_delete(), customer_update(), customer_name_exists(), BaseModel (+59 more) ### Community 13 - "Community 13" -Cohesion: 0.19 -Nodes (26): create_instance(), create_process_def(), get_all_tasks_for_business(), get_instance(), get_nodes_by_version(), get_process_def(), get_transitions_by_version(), list_completed_tasks() (+18 more) +Cohesion: 0.17 +Nodes (27): create_instance(), create_process_def(), create_task(), get_all_tasks_for_business(), get_instance(), get_latest_version(), get_nodes_by_version(), get_pending_tasks_by_node() (+19 more) ### Community 14 - "Community 14" -Cohesion: 0.10 -Nodes (47): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+39 more) +Cohesion: 0.16 +Nodes (32): check_document_expiry(), document_reminder_stats(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions(), list_warnings(), date (+24 more) ### Community 15 - "Community 15" -Cohesion: 0.12 -Nodes (14): BxReimburseApply, BxReimburseApproval, BxReimburseDetail, BxReimburseInvoice, BxReimburseOffset, ReimburseApplyOut, ReimburseInvoiceBriefOut, Any (+6 more) +Cohesion: 0.11 +Nodes (13): BxReimburseApply, BxReimburseApproval, BxReimburseDetail, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseInvoiceBriefOut, ReimburseInvoiceLinkIn, Any, Session (+5 more) ### Community 16 - "Community 16" Cohesion: 0.09 Nodes (60): cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records(), get_apply(), get_record(), list_applies() (+52 more) ### Community 18 - "Community 18" -Cohesion: 0.11 -Nodes (37): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+29 more) +Cohesion: 0.15 +Nodes (30): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+22 more) ### Community 19 - "Community 19" -Cohesion: 0.16 -Nodes (20): _avatar_url_field(), _build_user_info_payload(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。, 与 web-admin `userInfo` 字段约定一致。 (+12 more) +Cohesion: 0.14 +Nodes (26): _avatar_url_field(), _build_user_info_payload(), change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), _jwt_user_payload(), logout(), public_quote_share() (+18 more) ### Community 21 - "Community 21" -Cohesion: 0.07 -Nodes (70): _alias_row_to_dict(), _assert_brand_deletable(), barcode_exists(), _brand_row_to_dict(), _build_category_tree(), category_code_exists(), _collect_category_with_ancestors(), create_category() (+62 more) +Cohesion: 0.10 +Nodes (54): _alias_row_to_dict(), _assert_brand_deletable(), barcode_exists(), _brand_row_to_dict(), _build_category_tree(), category_code_exists(), _category_row_to_dict(), _collect_category_with_ancestors() (+46 more) ### Community 22 - "Community 22" Cohesion: 0.08 Nodes (28): parse_admin_request_json(), Any, Request, 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `{, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, ApiCryptoError, _b64url_decode(), _b64url_encode() (+20 more) ### Community 23 - "Community 23" -Cohesion: 0.15 -Nodes (6): convert_heic_to_jpeg(), OSSStorage, process_image_content(), 将 HEIC/HEIF 格式转换为 JPEG 格式, 处理图片内容,如果是 HEIC 格式则转换为 JPEG, BytesIO +Cohesion: 0.11 +Nodes (8): convert_heic_to_jpeg(), OSSStorage, process_image_content(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 将 HEIC/HEIF 格式转换为 JPEG 格式, 处理图片内容,如果是 HEIC 格式则转换为 JPEG, BytesIO ### Community 24 - "Community 24" -Cohesion: 0.50 -Nodes (4): ApiRequestLogCRUD, Session, SysApiRequestLog, SysApiRequestLogHis +Cohesion: 0.20 +Nodes (18): create_vehicle(), list_vehicles(), update_vehicle(), _vehicle_to_detail(), _vehicle_to_read(), generate_uuid(), PlVehiclePersonnel, 车辆-人员关联表 pl_vehicle_personnel (+10 more) ### Community 25 - "Community 25" -Cohesion: 0.07 -Nodes (84): _build_driver_url(), get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _build_public_page(), _format_file_size(), _format_plan_date(), get_public_transport(), _get_transport_by_token() (+76 more) +Cohesion: 0.08 +Nodes (75): _build_driver_url(), get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result() (+67 more) ### Community 26 - "Community 26" Cohesion: 0.10 -Nodes (45): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 运营端角色守卫:admin / super_admin 可访问。, 接口菜单权限守卫。super_admin 直接放行。, require_admin_or_super_admin(), require_menu_code(), batch_assign_owner(), batch_submit_contract_approval() (+37 more) +Nodes (45): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), batch_assign_owner(), batch_submit_contract_approval(), create_from_opportunity(), download_contract_pdf() (+37 more) ### Community 27 - "Community 27" -Cohesion: 0.17 +Cohesion: 0.19 Nodes (28): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan() (+20 more) ### Community 28 - "Community 28" -Cohesion: 0.11 -Nodes (57): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlementTransport, PlRemittanceVoucher, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, 结算单-运输关联表 pl_freight_settlement_transport, 汇款凭证表 pl_remittance_voucher (+49 more) +Cohesion: 0.10 +Nodes (60): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlementTransport, PlRemittanceVoucher, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, 结算单-运输关联表 pl_freight_settlement_transport, 汇款凭证表 pl_remittance_voucher (+52 more) ### Community 29 - "Community 29" -Cohesion: 0.11 -Nodes (31): _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images(), Session, UploadFile (+23 more) +Cohesion: 0.13 +Nodes (28): _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images(), Session, UploadFile (+20 more) ### Community 30 - "Community 30" -Cohesion: 0.10 -Nodes (34): menu_badge_stats(), Session, Session, recognize_cert(), RecognizeCertBody, RecognizeCertResult, _address_to_read(), _build_address_query() (+26 more) +Cohesion: 0.15 +Nodes (16): menu_badge_stats(), Session, Session, recognize_cert(), RecognizeCertBody, RecognizeCertResult, _auto_fill_create_dept_id(), get_db() (+8 more) ### Community 33 - "Community 33" Cohesion: 0.20 Nodes (15): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+7 more) ### Community 34 - "Community 34" -Cohesion: 0.11 -Nodes (49): customer_create(), customer_update(), follow_by_customer(), follow_detail(), assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer() (+41 more) +Cohesion: 0.06 +Nodes (87): create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any, date, Session, _row_to_dict() (+79 more) ### Community 35 - "Community 35" -Cohesion: 0.18 -Nodes (36): clear_portal_workflow(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_bx_user_mapping(), load_runtime_settings() (+28 more) +Cohesion: 0.09 +Nodes (62): clear_portal_workflow(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_bx_user_mapping(), load_runtime_settings() (+54 more) ### Community 36 - "Community 36" -Cohesion: 0.18 -Nodes (25): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+17 more) +Cohesion: 0.08 +Nodes (60): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields(), get_designer_data() (+52 more) ### Community 37 - "Community 37" Cohesion: 0.24 Nodes (18): _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator(), can_delete_by_creator(), is_super_admin(), normalize_user_info(), Any (+10 more) ### Community 38 - "Community 38" -Cohesion: 0.21 -Nodes (15): load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal, Session, 按计划产品明细 ID 批量加载归档品牌数量(brandId/brandName/qty)。, 软删旧品牌量行后按归档结果插入;无品牌约定则只软删不插入。, validate_brand_qty_rows() (+7 more) +Cohesion: 0.12 +Nodes (28): PlInventory, PlInventoryTransaction, 库存流水表 pl_inventory_transaction, load_brand_qtys_by_plan_product_ids(), persist_plan_product_brand_qtys(), Any, Decimal, Session (+20 more) ### Community 39 - "Community 39" -Cohesion: 0.11 -Nodes (44): clue_assign(), clue_convert(), clue_create(), clue_delete(), clue_invalid(), clue_update(), clue_update_level(), clue_update_status() (+36 more) +Cohesion: 0.14 +Nodes (42): assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope(), create_clue_follow() (+34 more) ### Community 42 - "Community 42" Cohesion: 0.19 Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+24 more) ### Community 43 - "Community 43" -Cohesion: 0.11 -Nodes (28): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request, Session (+20 more) +Cohesion: 0.10 +Nodes (30): create_invoice(), delete_invoice(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request, Session (+22 more) ### Community 44 - "Community 44" -Cohesion: 0.13 -Nodes (16): ApiCryptoMiddleware, _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin (+8 more) +Cohesion: 0.12 +Nodes (15): Config, _db_pool_keepalive_loop(), _error_json(), lifespan(), Exception, Request, 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin (+7 more) ### Community 45 - "Community 45" -Cohesion: 0.22 -Nodes (15): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj() (+7 more) +Cohesion: 0.16 +Nodes (19): ApiRequestLogMiddleware, _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj() (+11 more) ### Community 46 - "Community 46" Cohesion: 0.18 Nodes (17): get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta(), snapshot_oper_log_meta(), _format_summary(), oper_log() (+9 more) ### Community 48 - "Community 48" -Cohesion: 0.20 -Nodes (28): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), _generate_batch_no(), _get_inventory() (+20 more) +Cohesion: 0.17 +Nodes (27): _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), _generate_batch_no(), _get_inventory(), _get_inventory_by_id() (+19 more) ### Community 49 - "Community 49" -Cohesion: 0.07 -Nodes (50): _build_page(), _get_by_token(), _make_handlers(), _models(), Session, 运输计划 · 入库/出库单现场免登录公共 API, BizAttachment, PlDocumentReminder (+42 more) +Cohesion: 0.11 +Nodes (34): create_personnel(), list_personnel(), _personnel_to_detail(), _personnel_to_read(), PlCert, PlDocumentReminder, PlPersonnel, 证件到期提醒表 pl_document_reminder (+26 more) ### Community 50 - "Community 50" -Cohesion: 0.13 -Nodes (34): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+26 more) +Cohesion: 0.11 +Nodes (38): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), _generate_settlement_no(), get_settlement(), get_settlement_approval_flow() (+30 more) ### Community 51 - "Community 51" -Cohesion: 0.11 -Nodes (32): generate_uuid(), CrmProductBrand, PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary() (+24 more) +Cohesion: 0.08 +Nodes (43): _build_public_page(), _format_file_size(), _format_plan_date(), get_public_transport(), _get_transport_by_token(), _parse_feedback_images(), Session, UploadFile (+35 more) ### Community 52 - "Community 52" Cohesion: 0.18 Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more) ### Community 53 - "Community 53" -Cohesion: 0.12 -Nodes (29): 报销模块认证适配:门户 JWT 用户 → bx 业务上下文。, filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。, 报销模块 Service 基类 — 租户隔离 + UUID + 软删除。, apply_bx_scope(), assert_bx_attachment_biz_in_scope(), assert_bx_biz_in_scope() (+21 more) +Cohesion: 0.09 +Nodes (41): 报销模块认证适配:门户 JWT 用户 → bx 业务上下文。, BxReimburseInvoice, BxReimburseOffset, BxWorkflowNode, 报销(bx)模块数据模型 — 对齐 docs/sql/20260606_bx_tables.sql, filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。 (+33 more) ### Community 54 - "Community 54" Cohesion: 0.26 Nodes (23): _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound(), get_outbound_by_plan(), inbound_site_url(), list_inbound() (+15 more) ### Community 58 - "Community 58" -Cohesion: 0.25 -Nodes (14): 获取用户所有角色的数据权限配置。 返回: [{"data_scope": str, "details": [SysRoleDataScopeDetai, _resolve_user_role_scopes(), business_type_from_path(), title_from_path(), _apply_oper_log_scope(), get_oper_log(), list_oper_logs(), _oper_log_row_in_scope() (+6 more) +Cohesion: 0.17 +Nodes (20): operlog_detail(), operlog_list(), Session, 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info(), business_type_from_path(), title_from_path(), _apply_oper_log_scope() (+12 more) ### Community 59 - "Community 59" Cohesion: 0.20 Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more) ### Community 60 - "Community 60" -Cohesion: 0.10 -Nodes (40): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse() (+32 more) +Cohesion: 0.16 +Nodes (31): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse() (+23 more) ### Community 61 - "Community 61" Cohesion: 0.16 -Nodes (33): DbPurchasePlan, PlTransportDbLink, 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), _create_db_inventory(), _create_db_plan(), DibangInventoryLinkResult, find_monthly_db_plan() (+25 more) +Nodes (33): DbInboundOutbound, PlTransportDbLink, 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), _create_db_inventory(), _create_db_plan(), DibangInventoryLinkResult, find_monthly_db_plan() (+25 more) ### Community 62 - "Community 62" Cohesion: 0.21 Nodes (22): clear_target_products(), count_target_rows(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+14 more) ### Community 63 - "Community 63" -Cohesion: 0.15 -Nodes (16): 数据模型(与 docs/sql/shanxia2.0.sql 全库导出基线对齐的核心系统表), Web 管理端约定角色(由 sys_role.role_name 映射而来,非数据库枚举), 流程实例 wf_process_instance, UserRole, WfProcessInstance, _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统 (+8 more) +Cohesion: 0.24 +Nodes (9): _dispatch_local(), Any, 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。, 尝试本地直调。返回 True 表示已处理,False 表示无匹配的本地回调。, 流程实例状态变更后,向业务系统发送回调通知。 优先级: 1. 如果 callback_url 是内部路径(以 / 开头),优先尝试本地直调, register_local_callback(), trigger_callback() (+1 more) ### Community 64 - "Community 64" Cohesion: 0.04 -Nodes (160): clue_check_convert(), clue_check_duplicate(), clue_export(), clue_follow_create(), clue_follow_delete(), clue_follow_detail(), clue_follow_list(), clue_follow_statistics() (+152 more) +Nodes (147): clue_check_convert(), clue_check_duplicate(), clue_detail(), clue_export(), clue_follow_detail(), clue_follow_statistics(), clue_import(), clue_import_template() (+139 more) ### Community 65 - "Community 65" Cohesion: 0.10 -Nodes (62): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+54 more) +Nodes (58): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), get_apply(), get_process(), list_applies() (+50 more) ### Community 66 - "Community 66" Cohesion: 0.15 @@ -422,27 +422,27 @@ Nodes (24): create_workflow(), delete_workflow(), get_workflow(), get_workflow_b ### Community 67 - "Community 67" Cohesion: 0.29 -Nodes (16): clue_detail(), customer_detail(), ensure_crm_customer_linked_row_in_scope(), ensure_crm_owner_row_in_scope(), 客户子表(开票信息等):先校验关联客户 owner scope,否则校验 create_by。, _clear_default_for_customer(), create_invoice_info(), get_invoice_info() (+8 more) +Nodes (16): ensure_crm_customer_linked_row_in_scope(), ensure_crm_owner_row_in_scope(), Session, CRM 数据权限辅助(负责人 owner_user_id + 标准 create_by/create_dept_id)。, 客户子表(开票信息等):先校验关联客户 owner scope,否则校验 create_by。, _clear_default_for_customer(), create_invoice_info(), get_invoice_info() (+8 more) ### Community 68 - "Community 68" -Cohesion: 0.34 -Nodes (18): batch_add_opportunity_products(), _calc_subtotal(), create_opportunity_product(), _decimal_value(), _fill_product_redundant(), _get_opportunity_for_product(), get_opportunity_product(), list_opportunity_products() (+10 more) +Cohesion: 0.27 +Nodes (17): get_vehicle(), paste_recognize_commit(), PlVehicle, ConflictAction, PasteCommitBody, PasteCommitResult, PastePersonnelIn, PasteVehicleIn (+9 more) ### Community 69 - "Community 69" Cohesion: 0.15 -Nodes (25): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+17 more) +Nodes (27): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+19 more) ### Community 70 - "Community 70" Cohesion: 0.39 Nodes (10): create_post(), get_post(), list_posts(), post_code_exists(), Any, Session, _row_to_dict(), soft_delete_post() (+2 more) ### Community 71 - "Community 71" -Cohesion: 0.05 -Nodes (68): CRM 报价单 API 路由 — 挂接到 crm.router, BaseModel, InvoiceAttachmentOut, InvoiceOut, LedgerOut, WalletSummaryOut, ContactByCustomerBody, ContactDetailBody (+60 more) +Cohesion: 0.11 +Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more) ### Community 72 - "Community 72" -Cohesion: 0.17 -Nodes (30): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+22 more) +Cohesion: 0.19 +Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more) ### Community 73 - "Community 73" Cohesion: 0.20 @@ -457,24 +457,24 @@ Cohesion: 0.11 Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more) ### Community 78 - "Community 78" -Cohesion: 0.16 -Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more) +Cohesion: 0.15 +Nodes (14): invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_set_default(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价) (+6 more) ### Community 81 - "Community 81" -Cohesion: 0.21 -Nodes (13): format_datetime(), get_current_time(), parse_datetime(), datetime, datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+5 more) +Cohesion: 0.22 +Nodes (14): format_datetime(), get_current_time(), parse_datetime(), datetime, datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+6 more) ### Community 83 - "Community 83" -Cohesion: 0.09 -Nodes (53): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer() (+45 more) +Cohesion: 0.17 +Nodes (28): _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer(), _build_approval_list_filters(), create_approval_records() (+20 more) ### Community 84 - "Community 84" Cohesion: 0.23 Nodes (23): build_id_maps(), clip_text(), count_rows(), export_mapping(), fetch_rows(), legacy_id_to_str(), main(), map_id() (+15 more) ### Community 86 - "Community 86" -Cohesion: 0.19 -Nodes (26): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), list_weighing() (+18 more) +Cohesion: 0.18 +Nodes (27): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), list_weighing() (+19 more) ### Community 87 - "Community 87" Cohesion: 0.20 @@ -489,36 +489,36 @@ Cohesion: 0.19 Nodes (22): PlOcrUsageMonth, 阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计), assert_quota_available(), _build_ocr_client(), compress_image_bytes(), current_usage_month(), _first_attachment_url(), get_or_create_usage_row() (+14 more) ### Community 91 - "pl_vehicle_recharge_service.py" -Cohesion: 0.10 -Nodes (58): _apply_contract_entity_fields(), _build_contract_filters(), _build_customer_address(), _calc_amount_with_tax(), _change_row_to_dict(), _contract_period_key(), contract_row_to_dict(), create_contract() (+50 more) +Cohesion: 0.09 +Nodes (64): _apply_contract_entity_fields(), can_user_approve(), Java: canUserApprove — 顺序审批,当前步骤 pending 且 is_current=1, _build_contract_filters(), _build_customer_address(), _calc_amount_with_tax(), _change_row_to_dict(), _contract_period_key() (+56 more) ### Community 92 - "Community 92" -Cohesion: 0.14 -Nodes (29): 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password(), change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user() (+21 more) +Cohesion: 0.16 +Nodes (25): 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password(), change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user() (+17 more) ### Community 93 - "_invoice_info_by_customer_impl" -Cohesion: 0.23 -Nodes (19): contact_by_customer(), contact_detail(), contact_set_primary(), create_contact(), get_contact(), list_contacts_by_customer(), _parse_optional_date(), Any (+11 more) +Cohesion: 0.24 +Nodes (13): get_product(), soft_delete_product(), assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session (+5 more) ### Community 94 - "response.py" -Cohesion: 0.09 -Nodes (37): pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_list(), pool_rule_update(), pool_rule_update_status(), get_pool_record() (+29 more) +Cohesion: 0.12 +Nodes (15): pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_list(), pool_rule_update(), pool_rule_update_status(), PoolRuleAddBody (+7 more) ### Community 95 - "Community 95" -Cohesion: 0.21 -Nodes (13): Config, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict() (+5 more) +Cohesion: 0.35 +Nodes (11): create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict(), soft_delete_tenant(), tenant_no_exists() (+3 more) ### Community 97 - "_ensure_subpack_slip_no" -Cohesion: 0.05 -Nodes (111): approve_carrier(), bind_vehicle_driver(), create_carrier(), create_driver(), create_personnel(), create_vehicle(), delete_carrier(), delete_driver() (+103 more) +Cohesion: 0.09 +Nodes (51): approve_carrier(), bind_vehicle_driver(), create_carrier(), create_driver(), delete_carrier(), delete_driver(), delete_personnel(), delete_vehicle() (+43 more) ### Community 100 - "price_letter_detail" Cohesion: 0.27 Nodes (15): Settings, BaseSettings, apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main() (+7 more) ### Community 101 - ".to_tenant_user_dict" -Cohesion: 0.27 -Nodes (8): CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _build_workbook(), DictLabelResolver, ExportColumn, Any, Excel 导出工具:集中处理字典 code → label(对齐 Java ExcelDictConvert / ExcelDictPreloadConver, 导出列定义,dict_type 非空时自动将字典 value 转为 label。, 导出单元格解析:按列配置做字典翻译或自定义格式化。 +Cohesion: 0.23 +Nodes (12): CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _build_workbook(), DictLabelResolver, export_rows_to_xlsx_response(), ExportColumn, Any, Excel 导出工具:集中处理字典 code → label(对齐 Java ExcelDictConvert / ExcelDictPreloadConver, CRM 列表导出统一入口:表头 + 行数据 + 字典 label 转换 + 文件流响应。 (+4 more) ### Community 102 - "dept.py" Cohesion: 0.33 @@ -529,40 +529,40 @@ Cohesion: 0.24 Nodes (7): camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType ### Community 105 - "list_customers" -Cohesion: 0.23 -Nodes (14): extend_session(), get_client_ip(), is_refresh_token_valid(), is_session_valid(), Request, 同步 Redis 调用;失败时返回 None 供调用方降级。, 刷新会话 TTL(已登录用户每次 API 校验通过后滑动续期), _redis_call_safe() (+6 more) +Cohesion: 0.15 +Nodes (22): extend_session(), get_client_ip(), get_current_user(), get_current_user_by_token(), get_current_user_simple(), is_refresh_token_valid(), is_session_valid(), Request (+14 more) ### Community 106 - "Community 106" -Cohesion: 0.23 -Nodes (11): cancel_plan(), 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, _plan_type_to_business_type(), _normalize_plan_date(), date, Session, 运输计划 · 工厂现场链接(与地磅出入库单解耦), 入库/出库安排运输:按产品生成现场链接(不写 db_inbound_outbound)。 (+3 more) +Cohesion: 0.38 +Nodes (11): apply_pl_scope(), Session, PL 模块数据权限辅助(create_by / create_dept_id,无 owner_field)。, build_menu_badge_counts(), count_document_reminder_expired_pending(), count_freight_approval_pending(), count_freight_disburse_pending(), _count_pending_applies() (+3 more) ### Community 107 - "apply_pl_scope" -Cohesion: 0.06 -Nodes (62): category_delete(), clue_import_template(), customer_import_template(), invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list() (+54 more) +Cohesion: 0.03 +Nodes (97): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_convert(), clue_create(), clue_delete() (+89 more) ### Community 109 - "Community 109" -Cohesion: 0.15 -Nodes (17): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), BxExpenseItem, _coerce_id() (+9 more) +Cohesion: 0.20 +Nodes (13): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), BxExpenseItem, _coerce_id() (+5 more) ### Community 110 - "Base" -Cohesion: 0.18 -Nodes (17): get_web_auth_menu_codes(), 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。, get_user_menu_codes(), Session, 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes() (+9 more) +Cohesion: 0.17 +Nodes (18): get_user_menu_codes(), Session, 菜单 code 权限守卫(V0.3:通过 sys_user_role → sys_role_menu → sys_menu.perms), 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web() (+10 more) ### Community 111 - "Community 111" Cohesion: 0.28 Nodes (14): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+6 more) ### Community 112 - "storage.py" -Cohesion: 0.07 -Nodes (48): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, supplier_info_add(), supplier_info_delete(), supplier_info_list_all(), supplier_info_update() (+40 more) +Cohesion: 0.22 +Nodes (17): _apply_list_filters(), create_supplier_info(), get_supplier_info(), list_all_supplier_info(), list_supplier_info(), Any, Session, CRM 供方信息 CRUD — 对照 CrmSupplierInfoServiceImpl.java (+9 more) ### Community 113 - "quote_share_log.py" Cohesion: 0.26 Nodes (12): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+4 more) ### Community 114 - "db_models.py" -Cohesion: 0.27 -Nodes (10): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。, 当前租户下纯数字 id 的最大值(不含 UUID 等非数字主键)。 (+2 more) +Cohesion: 0.24 +Nodes (12): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+4 more) ### Community 115 - "site.py" Cohesion: 0.39 @@ -574,7 +574,7 @@ Nodes (25): calculate_subtotal(), _decimal_value(), delete_products_by_quote_id( ### Community 118 - "Community 118" Cohesion: 0.22 -Nodes (22): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+14 more) +Nodes (21): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+13 more) ### Community 119 - "Community 119" Cohesion: 0.17 @@ -585,52 +585,52 @@ Cohesion: 0.22 Nodes (15): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+7 more) ### Community 125 - "Community 125" -Cohesion: 0.10 -Nodes (44): 按运输计划单据类型解析地磅往来单位(不区分 CRM 合同类型)。 - 入库单 inbound:供方 → party_a,其次 supplier_nam, resolve_partner_company(), apply_dibang_prefill_to_order(), apply_site_feedback(), build_io_order_site_url(), create_io_order_for_transport(), _dibang_qty_by_plan_product(), enrich_io_items_with_brand_feedback() (+36 more) +Cohesion: 0.05 +Nodes (67): _build_page(), _get_by_token(), _make_handlers(), _models(), Session, 运输计划 · 入库/出库单现场免登录公共 API, 附件上传 bizType 与 MinIO 目录映射(对齐原 CRM oss 上传语义), 优先使用显式 folder;否则按 bizType 映射默认目录。 (+59 more) ### Community 126 - "customer_pool.py" -Cohesion: 0.36 -Nodes (8): operlog_detail(), operlog_list(), Session, 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info(), OperLogDetailBody, OperLogListBody, 操作日志(兼容 RuoYi OperLog 视图) +Cohesion: 0.45 +Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more) ### Community 127 - "Community 127" -Cohesion: 0.21 -Nodes (19): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+11 more) +Cohesion: 0.38 +Nodes (14): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+6 more) ### Community 128 - "plan.py" -Cohesion: 0.06 -Nodes (110): archive_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), create_plan_full(), delete_plan(), _determine_plan_type() (+102 more) +Cohesion: 0.10 +Nodes (63): create_from_contract(), create_plan(), create_plan_full(), _generate_plan_no(), 创建运输计划(完整表单:合同产品 + 可选预选车辆,不自动安排运输), 生成计划编号 POYYYYMMDD###(当日 3 位序号,每日重置), update_plan(), PlPlan (+55 more) ### Community 129 - "BaseStorage" Cohesion: 0.24 -Nodes (10): ProcessDefCreateBody, ProcessDefUpdateBody, StartInstanceBody, create_task(), get_latest_version(), get_pending_tasks_by_node(), get_task(), 流程定义版本 wf_process_version (+2 more) +Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more) ### Community 130 - "datetime_parse.py" -Cohesion: 0.37 -Nodes (14): create_opportunity_follow(), _ensure_parent_opportunity(), list_follows_by_opportunity(), list_opportunity_follows(), _parse_optional_datetime(), Any, datetime, Session (+6 more) +Cohesion: 0.36 +Nodes (9): create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path(), CRM 模块数据模型(产品分类、产品主表、统一附件表、客户管理、公海池、线索管理) (+1 more) ### Community 131 - "LocalStorage" Cohesion: 0.36 Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic ### Community 132 - "crm_supplier_hazard.py" -Cohesion: 0.15 -Nodes (21): build_updates(), derive_source_url(), fetch_source_customers(), legacy_id_to_str(), load_oss_map(), load_runtime_settings(), load_settings_env(), main() (+13 more) +Cohesion: 0.29 +Nodes (12): build_updates(), derive_source_url(), fetch_source_customers(), legacy_id_to_str(), load_oss_map(), load_runtime_settings(), load_settings_env(), main() (+4 more) ### Community 134 - "Community 134" -Cohesion: 0.15 -Nodes (26): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, batch_generate_sample_codes() (+18 more) +Cohesion: 0.25 +Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more) ### Community 135 - "post.py" -Cohesion: 0.30 -Nodes (10): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+2 more) +Cohesion: 0.24 +Nodes (12): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+4 more) ### Community 136 - "Community 136" -Cohesion: 0.19 -Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more) +Cohesion: 0.22 +Nodes (16): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+8 more) ### Community 137 - "statistics.py" -Cohesion: 0.22 -Nodes (22): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+14 more) +Cohesion: 0.09 +Nodes (37): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+29 more) ### Community 138 - "Community 138" Cohesion: 0.33 @@ -649,16 +649,16 @@ Cohesion: 0.33 Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_dict(), soft_delete_leave(), update_leave() (+3 more) ### Community 144 - "SysApiRequestLog" -Cohesion: 0.10 -Nodes (20): category_add(), category_tree(), category_update(), clue_import(), product_delete(), product_detail(), product_import(), UploadFile (+12 more) +Cohesion: 0.51 +Nodes (10): apply_site_feedback(), OrderItem, _header(), _item(), test_apply_site_feedback_does_not_reset_first_submitted_at(), test_apply_site_feedback_keeps_in_progress_when_requested(), test_apply_site_feedback_rejects_already_voided(), test_apply_site_feedback_rejects_invalid_status() (+2 more) ### Community 145 - "minio_url.py" -Cohesion: 0.38 -Nodes (7): change_current_user_password(), get_current_user_profile(), public_quote_share(), Request, Session, 获取当前用户信息(与 sys_user 字段对应)。, 公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT) +Cohesion: 0.39 +Nodes (8): get_redis_client(), get_sync_redis_client(), Redis, 共享 Redis 客户端(同步:会话鉴权;异步:API 加密 nonce)。, 同步 Redis(auth 会话等,在线程池中调用)。, 异步 Redis(API 加密 nonce 等中间件)。, _redis_common_kwargs(), redis_enabled() ### Community 146 - "__init__.py" -Cohesion: 0.13 -Nodes (26): price_letter_add(), price_letter_detail(), price_letter_list(), price_letter_update(), price_letter_void(), create_price_letter(), get_price_letter(), list_price_letters() (+18 more) +Cohesion: 0.29 +Nodes (15): create_price_letter(), get_price_letter(), list_price_letters(), _parse_date(), Any, date, Session, _row_to_dict() (+7 more) ### Community 147 - "Community 147" Cohesion: 0.37 @@ -666,23 +666,27 @@ Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_depe ### Community 150 - "ContractListQuery" Cohesion: 0.08 -Nodes (28): ContractApprovalActionBody, ContractApprovalPassBody, ContractApprovalRejectBody, ContractApprovalTransferBody, ContractBatchAssignBody, ContractBatchSubmitBody, ContractChangeCreateBody, ContractChangeSubmitBody (+20 more) +Nodes (48): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), execute_change(), _get_change_row(), Java Controller TODO — 保持 pending,记录备注, soft_delete_contract_changes(), soft_delete_contract_templates(), submit_change_approval() (+40 more) ### Community 152 - "Community 152" -Cohesion: 0.29 -Nodes (6): Config, format_api_error_message(), PageResult, Exception, 将 HTTP/SQLAlchemy 等异常转为可展示的错误文案(避免 str([]) 空列表)。, ResponseModel +Cohesion: 0.17 +Nodes (10): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), 运营端角色守卫:admin / super_admin 可访问。, require_admin_or_super_admin(), Config, format_api_error_message(), PageResult, Exception (+2 more) ### Community 154 - "web_login_rsa_public_key" -Cohesion: 0.23 -Nodes (10): check_customer_protect_time(), pool_recovery_job(), Session, 每天凌晨1点:检查保护期到期客户,跟进次数不足则退回公海, 每天早上9点:保护期到期提醒(3天内到期且跟进不足), _recycle_to_pool(), remind_customer_recycle(), warn_customer_recycle() (+2 more) +Cohesion: 0.33 +Nodes (8): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, BizNoKind ### Community 156 - "get_client_ip" Cohesion: 0.27 Nodes (11): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), Any, Session, 字典数据 CRUD(sys_dict_data), 字典下拉选项:租户主数据,忽略数据范围(user_info 保留兼容调用方,不参与过滤)。 (+3 more) +### Community 159 - "context.py" +Cohesion: 0.46 +Nodes (7): CrmProductBrand, apply_updates(), collect_candidates(), main(), parse_name(), Path, write_csv() + ### Community 160 - "register_local_callback" -Cohesion: 0.40 -Nodes (3): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单) +Cohesion: 0.21 +Nodes (15): API 路由包 — 山峡化工生产一体化门户, create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session (+7 more) ### Community 161 - "backfill_crm_contract_attachment_urls.py" Cohesion: 0.33 @@ -696,10 +700,6 @@ Nodes (3): BaseStorage, 带下载文件名的访问 URL;默认实现为普通 Cohesion: 0.31 Nodes (9): decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。, 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。 (+1 more) -### Community 164 - "get_current_user_by_token" -Cohesion: 0.50 -Nodes (5): get_current_user(), get_current_user_by_token(), Session, 根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期), 获取当前用户(sync 依赖,配合 sync 路由在线程池执行,避免阻塞事件循环)。 - ### Community 170 - "test_quote_approver_setting.py" Cohesion: 0.20 Nodes (21): _assert_users_exist(), get_setting(), Any, Session, _row_to_dict(), save_setting(), _assert_users_exist(), get_setting() (+13 more) @@ -709,16 +709,16 @@ Cohesion: 0.24 Nodes (5): MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(PDF 等 iframe 场景)。 ### Community 173 - ".to_tenant_user_dict" -Cohesion: 0.38 -Nodes (6): apply_product_snapshot_to_inventory(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。, resolve_crm_product() +Cohesion: 0.33 +Nodes (8): _apply_inventory_product_update(), apply_product_snapshot_to_inventory(), apply_product_snapshot_to_plan(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。, resolve_crm_product() ### Community 174 - "datetime_parse.py" Cohesion: 0.67 Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。 ### Community 179 - "_ensure_subpack_slip_no" -Cohesion: 0.40 -Nodes (6): _ensure_subpack_slip_no(), _format_subpack_slip_no(), _normalize_subpack_slip_no(), 将历史分装单号统一为 NO:SXFZYYYYMMDD-###, 分配分装单号 NO:SXFZYYYYMMDD-###(按租户每日递增), _subpack_slip_no_seq() +Cohesion: 0.07 +Nodes (58): archive_plan(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), delete_plan(), _determine_plan_type(), _ensure_subpack_slip_no(), _format_subpack_slip_no() (+50 more) ### Community 180 - "menu.py" Cohesion: 0.36 @@ -733,8 +733,8 @@ Cohesion: 0.18 Nodes (10): 1. 创建虚拟环境, 2. 安装依赖, 3. 配置环境变量, 4. 启动服务, API 路由分组, shanxia2.0 后端骨架(FastAPI), 开发规范, 快速开始 (+2 more) ### Community 220 - "api_crypto_middleware.py" -Cohesion: 0.15 -Nodes (21): _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key(), Redis (+13 more) +Cohesion: 0.21 +Nodes (15): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+7 more) ### Community 237 - "order_status_compat.py" Cohesion: 0.36 @@ -756,17 +756,17 @@ Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时 ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `generate_uuid()` connect `Community 51` to `plan.py`, `BaseStorage`, `datetime_parse.py`, `Community 0`, `Community 4`, `Community 134`, `post.py`, `Community 8`, `Community 136`, `Community 7`, `Community 11`, `Community 13`, `Community 14`, `SysEthnic`, `Community 15`, `Community 16`, `__init__.py`, `Community 19`, `Community 21`, `Community 25`, `web_login_rsa_public_key`, `Community 27`, `get_client_ip`, `Community 28`, `Community 30`, `Community 34`, `Community 38`, `Community 39`, `test_quote_approver_setting.py`, `Community 43`, `Community 49`, `menu.py`, `Community 53`, `Community 61`, `Community 65`, `Community 66`, `Community 67`, `Community 68`, `Community 70`, `Community 74`, `Community 81`, `Community 83`, `Community 86`, `Community 87`, `pl_ocr_service.py`, `pl_vehicle_recharge_service.py`, `Community 92`, `_invoice_info_by_customer_impl`, `response.py`, `Community 95`, `_ensure_subpack_slip_no`, `dept.py`, `Community 106`, `Community 109`, `storage.py`, `quote_share_log.py`, `db_models.py`, `site.py`, `Community 116`, `Community 118`, `Community 125`?** - _High betweenness centrality (0.151) - this node is a cross-community bridge._ -- **Why does `Settings` connect `price_letter_detail` to `backfill_crm_contract_attachment_urls.py`, `Community 35`, `crm_supplier_hazard.py`, `Community 5`, `Community 7`, `Community 72`, `Community 73`, `Community 42`, `Community 78`, `Community 52`, `Any`, `Community 59`, `Community 62`, `Community 95`?** - _High betweenness centrality (0.110) - this node is a cross-community bridge._ -- **Why does `BaseModel` connect `Community 71` to `plan.py`, `BaseStorage`, `Community 1`, `Community 6`, `statistics.py`, `Community 11`, `Community 12`, `Community 14`, `Community 15`, `SysApiRequestLog`, `Community 16`, `Community 18`, `__init__.py`, `ContractListQuery`, `Community 152`, `Community 25`, `Community 26`, `Community 27`, `Community 30`, `Community 33`, `Community 34`, `Community 36`, `Community 39`, `Community 48`, `Community 49`, `SoftDeleteModel`, `Community 50`, `Community 54`, `Community 60`, `Community 64`, `Community 65`, `Community 66`, `Community 83`, `Community 86`, `response.py`, `_ensure_subpack_slip_no`, `apply_pl_scope`, `Community 109`, `Community 111`, `storage.py`, `Community 119`, `customer_pool.py`, `Community 127`?** - _High betweenness centrality (0.106) - this node is a cross-community bridge._ +- **Why does `generate_uuid()` connect `Community 24` to `plan.py`, `Community 0`, `datetime_parse.py`, `Community 4`, `Community 6`, `Community 134`, `Community 8`, `Community 136`, `post.py`, `Community 11`, `Community 7`, `Community 13`, `Community 14`, `SysEthnic`, `Community 15`, `Community 16`, `__init__.py`, `Community 19`, `Community 21`, `Community 25`, `web_login_rsa_public_key`, `Community 27`, `get_client_ip`, `Community 28`, `Community 29`, `context.py`, `Community 34`, `Community 38`, `Community 39`, `test_quote_approver_setting.py`, `Community 43`, `Community 49`, `_ensure_subpack_slip_no`, `menu.py`, `Community 53`, `Community 51`, `Community 61`, `Community 65`, `Community 66`, `Community 67`, `Community 68`, `Community 70`, `Community 74`, `Community 81`, `Community 83`, `Community 86`, `Community 87`, `pl_ocr_service.py`, `pl_vehicle_recharge_service.py`, `Community 92`, `Community 95`, `_ensure_subpack_slip_no`, `dept.py`, `storage.py`, `quote_share_log.py`, `db_models.py`, `site.py`, `Community 116`, `Community 118`, `Community 125`?** + _High betweenness centrality (0.152) - this node is a cross-community bridge._ +- **Why does `Settings` connect `price_letter_detail` to `backfill_crm_contract_attachment_urls.py`, `Community 35`, `crm_supplier_hazard.py`, `Community 5`, `Community 7`, `Community 72`, `Community 73`, `Community 42`, `Community 44`, `Community 52`, `Any`, `Community 59`, `Community 62`?** + _High betweenness centrality (0.111) - this node is a cross-community bridge._ +- **Why does `BaseModel` connect `Community 12` to `plan.py`, `Community 3`, `Community 6`, `statistics.py`, `Community 11`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `ContractListQuery`, `Community 152`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 30`, `register_local_callback`, `Community 33`, `Community 36`, `Community 43`, `Community 48`, `Community 49`, `SoftDeleteModel`, `Community 50`, `_ensure_subpack_slip_no`, `Community 54`, `Community 58`, `Community 60`, `Community 64`, `Community 65`, `Community 66`, `Community 68`, `Community 71`, `Community 78`, `Community 86`, `response.py`, `_ensure_subpack_slip_no`, `apply_pl_scope`, `Community 109`, `Community 111`, `Community 119`, `Community 125`, `Community 127`?** + _High betweenness centrality (0.109) - this node is a cross-community bridge._ - **Are the 8 inferred relationships involving `DbUserContext` (e.g. with `InventoryRelatedData` and `AutoGenerateMonthlyResult`) actually correct?** _`DbUserContext` has 8 INFERRED edges - model-reasoned connections that need verification._ - **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?** - _494 weakly-connected nodes found - possible documentation gaps or missing edges._ + _495 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `Community 0` be split into smaller, more focused modules?** - _Cohesion score 0.14304993252361672 - nodes in this community are weakly interconnected._ -- **Should `Community 3` be split into smaller, more focused modules?** - _Cohesion score 0.06672519754170325 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.14979757085020243 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.1471861471861472 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/5f2a6a293a908b0c2dfd58836355ca79885e485a1a043a61d64f44cf8804430a.json b/backend/graphify-out/cache/ast/v0.9.4/5f2a6a293a908b0c2dfd58836355ca79885e485a1a043a61d64f44cf8804430a.json new file mode 100644 index 000000000..605c1bad9 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/5f2a6a293a908b0c2dfd58836355ca79885e485a1a043a61d64f44cf8804430a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "label": "base_data.py", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "label": "list_carriers()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L74"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "carrierlistresponse", "label": "CarrierListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "label": "create_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L118"}, {"id": "carriercreate", "label": "CarrierCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "carrierread", "label": "CarrierRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "label": "get_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L148"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "label": "update_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L159"}, {"id": "carrierupdate", "label": "CarrierUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "label": "delete_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L188"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "label": "approve_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L202"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "label": "reject_carrier()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L211"}, {"id": "carrierauditreject", "label": "CarrierAuditReject", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "plcarrier", "label": "PlCarrier", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "label": "_vehicle_to_read()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L240"}, {"id": "plvehicle", "label": "PlVehicle", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "certread", "label": "CertRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "vehicleread", "label": "VehicleRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "label": "_vehicle_to_detail()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L257"}, {"id": "vehicledetailread", "label": "VehicleDetailRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "label": "list_vehicles()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L275"}, {"id": "vehiclelistresponse", "label": "VehicleListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "label": "create_vehicle()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L380"}, {"id": "vehiclecreate", "label": "VehicleCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "label": "get_vehicle()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L457"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "label": "update_vehicle()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L468"}, {"id": "vehicleupdate", "label": "VehicleUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "label": "delete_vehicle()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L542"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "label": "_personnel_to_read()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L575"}, {"id": "plpersonnel", "label": "PlPersonnel", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "personnelread", "label": "PersonnelRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "label": "_personnel_to_detail()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L590"}, {"id": "personneldetailread", "label": "PersonnelDetailRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "label": "list_personnel()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L604"}, {"id": "personnellistresponse", "label": "PersonnelListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "label": "create_personnel()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L660"}, {"id": "personnelcreate", "label": "PersonnelCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "label": "get_personnel()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L712"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "label": "update_personnel()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L723"}, {"id": "personnelupdate", "label": "PersonnelUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "label": "delete_personnel()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L779"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "label": "_personnel_to_driver_read()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L812"}, {"id": "driverread", "label": "DriverRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "label": "list_drivers()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L831"}, {"id": "driverlistresponse", "label": "DriverListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "label": "create_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L867"}, {"id": "drivercreate", "label": "DriverCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "label": "get_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L892"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "label": "update_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L903"}, {"id": "driverupdate", "label": "DriverUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "label": "delete_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L928"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "label": "bind_vehicle_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L947"}, {"id": "vehicledrivercreate", "label": "VehicleDriverCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "label": "unbind_vehicle_driver()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L979"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "label": "paste_recognize_commit()", "file_type": "code", "source_file": "app/api/pl/base_data.py", "source_location": "L1011"}, {"id": "pastecommitbody", "label": "PasteCommitBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "pastecommitresult", "label": "PasteCommitResult", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212\u7ba1\u7406 - \u57fa\u7840\u6570\u636e API\uff08\u627f\u8fd0\u5546\u3001\u8f66\u8f86\u3001\u4eba\u5458\uff09", "file_type": "rationale", "source_file": "app/api/pl/base_data.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_core_db_auth", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_schemas_pl", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_services_pl_cert_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_services_pl_cert_required_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_services_pl_carrier_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_services_pl_personnel_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_schemas_pl_paste_recognize", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L62", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "app_services_pl_paste_recognize_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L63", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "target": "carrierlistresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "target": "carriercreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "target": "carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "target": "carrierupdate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "target": "carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "target": "carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "target": "carrierauditreject", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "target": "carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "target": "plcarrier", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L240", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "target": "plvehicle", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L240", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "target": "certread", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L240", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "target": "vehicleread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L240", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "target": "plvehicle", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "target": "vehicledetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "target": "vehiclelistresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "vehiclecreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "vehicledetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L380", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "vehicledetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "target": "vehicleupdate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "target": "vehicledetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "plvehicle", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L575", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L575", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "target": "plpersonnel", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L575", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "target": "certread", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L575", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "target": "personnelread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L575", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "target": "plpersonnel", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "target": "personneldetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L590", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "target": "personnellistresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "personnelcreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "personneldetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L712", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L712", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L712", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "personneldetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L712", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "target": "personnelupdate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "target": "personneldetailread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L779", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L779", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L779", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "plpersonnel", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "target": "plpersonnel", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "target": "driverread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "target": "driverlistresponse", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "drivercreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "driverread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L892", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L892", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L892", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "target": "driverread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L892", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "target": "driverupdate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "target": "driverread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L903", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L947", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "target": "vehicledrivercreate", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L947", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L947", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L947", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L979", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L979", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L979", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1011", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "target": "pastecommitbody", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1011", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1011", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1011", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "target": "pastecommitresult", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1011", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "target": "carrierlistresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "target": "plcarrier", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L125", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L266", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "target": "vehicledetailread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L267", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "target": "vehiclelistresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L355", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "plvehicle", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L407", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L453", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L464", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L538", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L593", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "target": "personneldetailread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L597", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "target": "personnellistresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L645", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L648", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "plpersonnel", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L674", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L708", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L719", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L775", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "target": "driverread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L813", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "target": "driverlistresponse", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L860", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L862", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "plpersonnel", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L874", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L888", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L899", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L924", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/api/pl/base_data.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L83", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L83", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L84", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "PlCarrier", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L84"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L97", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L98", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L98", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L98", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L99", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L99", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L99", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L104", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "case", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L105", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L106", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L108", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L110", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L110", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "callee": "carrier_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L113", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L123", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L123", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L126", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "normalize_carrier_urls", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "normalize_carrier_urls", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L133", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "normalize_carrier_urls", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L134", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L141", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L142", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L143", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "callee": "carrier_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L144", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L153", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L153", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "_get_carrier", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L154", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "id", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L154"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "carrier_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L155", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L165", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L165", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "_get_carrier", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L166", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L168", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "normalize_carrier_urls", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L176", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "items", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L178", "receiver": "payload_data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L182", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L183", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "callee": "carrier_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L184", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L193", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L193", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "_get_carrier", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L194", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L195", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L195", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L198", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L207", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L217", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L222", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L222", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "PlCarrier", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L222"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L231", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L247", "receiver": "VehicleRead"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "load_vehicle_personnel_summaries", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L260", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L261", "receiver": "summaries"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "load_vehicle_personnel_rows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L262", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "certs_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L263", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "list_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L264", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L268", "receiver": "base"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L290", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L290", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L291", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "PlVehicle", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L291"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L306", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L309", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L310", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "case", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L310", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L310", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L311", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L322", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "PlCarrier", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L322"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L324", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "carrier_eligible_for_transport", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L338", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "load_vehicle_personnel_summaries", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L341", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "list_owner_certs_batch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L344", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L350", "receiver": "summaries"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "certs_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L351", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L351", "receiver": "certs_by_owner"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L357", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L359", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L359", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "load_vehicle_personnel_summaries", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L360", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "list_owner_certs_batch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L363", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L371", "receiver": "summaries"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "certs_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L372", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L372", "receiver": "certs_by_owner"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L385", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L385", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L388", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L388", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "PlVehicle", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L388"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L396", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "validate_vehicle_save_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L398", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L408", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L422", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L423", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "save_vehicle_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L426", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "save_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L435", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L444", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L446", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L449", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L452", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L462", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L462", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "_get_vehicle", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L463", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "id", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L463"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L474", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L474", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "_get_vehicle", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L475", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L479", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L483", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L484", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "list_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L488", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "load_vehicle_personnel_rows", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L492", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "validate_vehicle_save_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L494", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "items", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L503", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "save_vehicle_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L510", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "save_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L520", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L529", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L531", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L534", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L537", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L547", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L547", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "_get_vehicle", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L548", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L549", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L549", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L552", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L557", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L557", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "PlVehicle", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L557"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L566", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "callee": "nearest_expire_date", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L582", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L583", "receiver": "PersonnelRead"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "callee": "certs_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L594", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "callee": "list_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L595", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L598", "receiver": "base"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L615", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L615", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L616", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "PlPersonnel", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L616"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L629", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L630", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L630", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L630", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L631", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L636", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L637", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "case", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L637", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L637", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L638", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L640", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L642", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L642", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "list_owner_certs_batch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L644", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "certs_to_read", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L652", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L652", "receiver": "certs_by_owner"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L665", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L665", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "validate_personnel_required_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L667", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L675", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L689", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L690", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "save_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L693", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L702", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L704", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L707", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L717", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L717", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L718", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "id", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L718"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L729", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L729", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L730", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L733", "receiver": "payload"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L735", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L736", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "list_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L742", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L744", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "validate_personnel_required_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L746", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "items", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L753", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "save_owner_certs", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L760", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L769", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L771", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L774", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L784", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L784", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L785", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L786", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L786", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L789", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L794", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L794", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "PlPersonnel", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L794"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L803", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L838", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L838", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L839", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "PlPersonnel", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L839"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "or_", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L846", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L847", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L847", "receiver": "func"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "lower", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L847", "receiver": "q"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "contains", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L848", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L853", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L854", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "case", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L854", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "is_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L854", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L855", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "count", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L857", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "limit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L859", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "callee": "offset", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L859", "receiver": "query"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L872", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L872", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L875", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L885", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L886", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L887", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L897", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L897", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L898", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L909", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L909", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L910", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L922", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "callee": "refresh", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L923", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L933", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L933", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L934", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L935", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L935", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L938", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L952", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L952", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "_get_vehicle", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L953", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "_get_personnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L954", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "update", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L957", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L957", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "PlVehiclePersonnel", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L957"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "PlVehiclePersonnel", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L963", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L964", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L973", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L974", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L984", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L984", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L986", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L986", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "PlVehiclePersonnel", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L986"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L996", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L996", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "PlVehicleDriver", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L996"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "assert_row_deletable_by_creator", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1005", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "user_info_from_context", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1005", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1007", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "get_tenant_no", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1016", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "to_tenant_user_dict", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1016", "receiver": "user"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "commit_paste_recognize", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1018", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1025", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1028", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py", "source_location": "L1031", "receiver": "db"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_bind_vehicle_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_vehicle", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_vehicle", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_vehicle", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_drivers", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_vehicles", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_paste_recognize_commit", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_driver_read", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_personnel_to_read", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_unbind_vehicle_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_driver", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_vehicle", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/834f242f9733612613b7b3fec33dcab61d8fe0885158a5bfa8ebef8e0705dc46.json b/backend/graphify-out/cache/ast/v0.9.4/834f242f9733612613b7b3fec33dcab61d8fe0885158a5bfa8ebef8e0705dc46.json new file mode 100644 index 000000000..020bcabcf --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/834f242f9733612613b7b3fec33dcab61d8fe0885158a5bfa8ebef8e0705dc46.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "label": "base_data.py", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "label": "CarrierBase", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L19"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "label": "CarrierQualificationBase", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L27"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carriercreate", "label": "CarrierCreate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L45"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierupdate", "label": "CarrierUpdate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L49"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierauditreject", "label": "CarrierAuditReject", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L71"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "label": "CarrierRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L77"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "label": "carrier_to_read()", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L96"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclepersonnelrow", "label": "VehiclePersonnelRow", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L132"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certrow", "label": "CertRow", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L143"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certread", "label": "CertRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L158"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "label": "VehicleBase", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L174"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclecreate", "label": "VehicleCreate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L190"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleupdate", "label": "VehicleUpdate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L196"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleread", "label": "VehicleRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L213"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledetailread", "label": "VehicleDetailRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L228"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "label": "PersonnelBase", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L239"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelcreate", "label": "PersonnelCreate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L263"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelupdate", "label": "PersonnelUpdate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L268"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelread", "label": "PersonnelRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L286"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personneldetailread", "label": "PersonnelDetailRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L301"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "label": "DriverBase", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L311"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_drivercreate", "label": "DriverCreate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L324"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverupdate", "label": "DriverUpdate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L328"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverread", "label": "DriverRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L342"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverlistresponse", "label": "DriverListResponse", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L355"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledrivercreate", "label": "VehicleDriverCreate", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L365"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledriverread", "label": "VehicleDriverRead", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L372"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierlistresponse", "label": "CarrierListResponse", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L382"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclelistresponse", "label": "VehicleListResponse", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L387"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnellistresponse", "label": "PersonnelListResponse", "file_type": "code", "source_file": "app/schemas/pl/base_data.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212\u7ba1\u7406 - \u57fa\u7840\u6570\u636e Schema\uff08\u627f\u8fd0\u5546\u3001\u8f66\u8f86\u3001\u4eba\u5458\u3001\u8bc1\u4e66\uff09", "file_type": "rationale", "source_file": "app/schemas/pl/base_data.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "app_services_pl_carrier_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carriercreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carriercreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carriercreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierauditreject", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L71", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierauditreject", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L71", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "target": "date", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclepersonnelrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclepersonnelrow", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L132", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certrow", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certrow", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L174", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L174", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclecreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclecreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L213", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L213", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledetailread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L228", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledetailread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleread", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L228", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L239", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L239", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelcreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L263", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelcreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L263", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personneldetailread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personneldetailread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelread", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_drivercreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_drivercreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L342", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L342", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverlistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L355", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverlistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L355", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledrivercreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L365", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledrivercreate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L365", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledriverread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L372", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledriverread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L372", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierlistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierlistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclelistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclelistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnellistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnellistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/base_data.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "callee": "carrier_qualification_complete", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py", "source_location": "L97", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "callee": "carrier_agreement_expired", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py", "source_location": "L98", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrier_to_read", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierauditreject", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierbase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carriercreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierlistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierqualificationbase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_carrierupdate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_certrow", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverbase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_drivercreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverlistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_driverupdate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelbase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelcreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personneldetailread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnellistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_personnelupdate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclebase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclecreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledetailread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledrivercreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicledriverread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclelistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehiclepersonnelrow", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_base_data_vehicleupdate"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/8d1d7645a644d8ae2296285e416ceb7f3b7f493fb5e7fb94b0645133b3cff9bf.json b/backend/graphify-out/cache/ast/v0.9.4/8d1d7645a644d8ae2296285e416ceb7f3b7f493fb5e7fb94b0645133b3cff9bf.json new file mode 100644 index 000000000..632ce4c3b --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/8d1d7645a644d8ae2296285e416ceb7f3b7f493fb5e7fb94b0645133b3cff9bf.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "label": "pl_models.py", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcarrier", "label": "PlCarrier", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L28"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicle", "label": "PlVehicle", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plpersonnel", "label": "PlPersonnel", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportaddress", "label": "PlTransportAddress", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L119"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcert", "label": "PlCert", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L143"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldriver", "label": "PlDriver", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L169"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclepersonnel", "label": "PlVehiclePersonnel", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L195"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicledriver", "label": "PlVehicleDriver", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L216"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplan", "label": "PlPlan", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L241"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L346"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproductbrandqty", "label": "PlPlanProductBrandQty", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L405"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanchange", "label": "PlPlanChange", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L427"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransport", "label": "PlTransport", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L454"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductfeedback", "label": "PlTransportProductFeedback", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L516"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductbrandqty", "label": "PlTransportProductBrandQty", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L537"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportdblink", "label": "PlTransportDbLink", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L560"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplantransport", "label": "PlPlanTransport", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L583"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportsitelink", "label": "PlTransportSiteLink", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L602"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorder", "label": "PlInboundOrder", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L635"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitem", "label": "PlInboundOrderItem", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L665"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitembrandqty", "label": "PlInboundOrderItemBrandQty", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L691"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorder", "label": "PlOutboundOrder", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L714"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitem", "label": "PlOutboundOrderItem", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L744"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitembrandqty", "label": "PlOutboundOrderItemBrandQty", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L770"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportapproval", "label": "PlTransportApproval", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L793"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlement", "label": "PlFreightSettlement", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L822"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementapproval", "label": "PlFreightSettlementApproval", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L854"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementtransport", "label": "PlFreightSettlementTransport", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L881"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plremittancevoucher", "label": "PlRemittanceVoucher", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L901"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventory", "label": "PlInventory", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L928"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorytransaction", "label": "PlInventoryTransaction", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L962"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorywarning", "label": "PlInventoryWarning", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L993"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldocumentreminder", "label": "PlDocumentReminder", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1020"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargeapply", "label": "PlVehicleRechargeApply", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1048"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceapply", "label": "PlVehicleMaintenanceApply", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1073"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceprocess", "label": "PlVehicleMaintenanceProcess", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1101"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureaapply", "label": "PlVehicleUreaApply", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1125"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureadisburse", "label": "PlVehicleUreaDisburse", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1152"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plocrusagemonth", "label": "PlOcrUsageMonth", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargerecord", "label": "PlVehicleRechargeRecord", "file_type": "code", "source_file": "app/models/pl_models.py", "source_location": "L1195"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_120", "label": "\u8fd0\u8f93\u901a\u7528\u5730\u5740\u5e93 pl_transport_address", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L120"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_170", "label": "\u53f8\u673a\u8868 pl_driver\uff08\u517c\u5bb9\u65e7\u8868\uff0c\u8fc1\u79fb\u540e\u9010\u6b65\u5e9f\u5f03\uff09", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L170"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_196", "label": "\u8f66\u8f86-\u4eba\u5458\u5173\u8054\u8868 pl_vehicle_personnel", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L196"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_217", "label": "\u8f66\u8f86-\u53f8\u673a\u5173\u8054\u8868 pl_vehicle_driver\uff08\u517c\u5bb9\u65e7\u8868\uff09", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L217"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_347", "label": "\u8ba1\u5212\u4ea7\u54c1\u660e\u7ec6\u8868 pl_plan_product", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L347"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_406", "label": "\u8ba1\u5212\u4ea7\u54c1\u5f52\u6863\u54c1\u724c\u6570\u91cf pl_plan_product_brand_qty", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L406"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_428", "label": "\u8ba1\u5212\u53d8\u66f4\u8bb0\u5f55\u8868 pl_plan_change", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L428"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_517", "label": "\u8fd0\u8f93\u5355\u6309\u4ea7\u54c1\u56de\u4f20 pl_transport_product_feedback", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L517"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_538", "label": "\u8fd0\u8f93\u5355\u4ea7\u54c1\u56de\u4f20\u54c1\u724c\u6570\u91cf pl_transport_product_brand_qty", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L538"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_561", "label": "\u8fd0\u8f93-\u5730\u78c5\u51fa\u5165\u5e93\u5173\u8054 pl_transport_db_link", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L561"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_584", "label": "\u8ba1\u5212-\u8fd0\u8f93\u5173\u8054\u8868 pl_plan_transport", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L584"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_603", "label": "\u8fd0\u8f93\u8ba1\u5212\u73b0\u573a\u94fe\u63a5 pl_transport_site_link\uff08\u4e0e\u5730\u78c5\u51fa\u5165\u5e93\u5355\u89e3\u8026\uff09", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L603"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_636", "label": "\u8fd0\u8f93\u8ba1\u5212-\u5165\u5e93\u5355 pl_inbound_order", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L636"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_666", "label": "\u8fd0\u8f93\u8ba1\u5212-\u5165\u5e93\u5355\u660e\u7ec6 pl_inbound_order_item", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L666"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_692", "label": "\u5165\u5e93\u660e\u7ec6\u54c1\u724c\u6570\u91cf pl_inbound_order_item_brand_qty", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L692"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_715", "label": "\u8fd0\u8f93\u8ba1\u5212-\u51fa\u5e93\u5355 pl_outbound_order", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L715"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_745", "label": "\u8fd0\u8f93\u8ba1\u5212-\u51fa\u5e93\u5355\u660e\u7ec6 pl_outbound_order_item", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L745"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_771", "label": "\u51fa\u5e93\u660e\u7ec6\u54c1\u724c\u6570\u91cf pl_outbound_order_item_brand_qty", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L771"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_794", "label": "\u8fd0\u8f93\u5ba1\u6279\u8bb0\u5f55\u8868 pl_transport_approval", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L794"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_823", "label": "\u8fd0\u8d39\u7ed3\u7b97\u8868 pl_freight_settlement", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L823"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_855", "label": "\u8fd0\u8d39\u7ed3\u7b97\u5ba1\u6279 pl_freight_settlement_approval", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L855"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_882", "label": "\u7ed3\u7b97\u5355-\u8fd0\u8f93\u5173\u8054\u8868 pl_freight_settlement_transport", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L882"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_902", "label": "\u6c47\u6b3e\u51ed\u8bc1\u8868 pl_remittance_voucher", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L902"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_963", "label": "\u5e93\u5b58\u6d41\u6c34\u8868 pl_inventory_transaction", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L963"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_994", "label": "\u5e93\u5b58\u9884\u8b66\u8868 pl_inventory_warning", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L994"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1021", "label": "\u8bc1\u4ef6\u5230\u671f\u63d0\u9192\u8868 pl_document_reminder", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1021"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1049", "label": "\u8f66\u8f86ETC/\u52a0\u6cb9\u5145\u503c\u7533\u8bf7 pl_vehicle_recharge_apply", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1049"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1074", "label": "\u8f66\u8f86\u7ef4\u4fdd\u7533\u8bf7 pl_vehicle_maintenance_apply", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1074"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1102", "label": "\u8f66\u8f86\u7ef4\u4fdd\u5904\u7406\u767b\u8bb0 pl_vehicle_maintenance_process", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1126", "label": "\u8f66\u8f86\u5c3f\u7d20\u7533\u8bf7 pl_vehicle_urea_apply", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1126"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1153", "label": "\u8f66\u8f86\u5c3f\u7d20\u53d1\u653e\u767b\u8bb0 pl_vehicle_urea_disburse", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1153"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1177", "label": "\u963f\u91cc\u4e91 OCR \u6708\u5ea6\u8c03\u7528\u8ba1\u6570 pl_ocr_usage_month\uff08\u6309\u81ea\u7136\u6708\u5168\u5c40\u7edf\u8ba1\uff09", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1177"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1196", "label": "\u8f66\u8f86ETC/\u52a0\u6cb9\u5145\u503c\u53d1\u653e\u767b\u8bb0 pl_vehicle_recharge_record", "file_type": "rationale", "source_file": "app/models/pl_models.py", "source_location": "L1196"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcarrier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcarrier", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicle", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plpersonnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plpersonnel", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportaddress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L119", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportaddress", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L119", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcert", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldriver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L169", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldriver", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L169", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclepersonnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclepersonnel", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicledriver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L216", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicledriver", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L216", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L241", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplan", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L241", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L346", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L346", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproductbrandqty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproductbrandqty", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanchange", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L427", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanchange", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L427", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransport", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductfeedback", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductbrandqty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L537", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductbrandqty", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L537", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportdblink", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L560", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportdblink", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L560", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplantransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L583", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplantransport", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L583", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportsitelink", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportsitelink", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L635", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L635", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L665", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L665", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitembrandqty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L691", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitembrandqty", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L691", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L714", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L714", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L744", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L744", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitembrandqty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L770", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitembrandqty", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L770", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportapproval", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L793", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportapproval", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L793", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlement", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L822", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlement", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L822", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementapproval", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L854", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementapproval", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L854", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementtransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L881", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementtransport", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L881", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plremittancevoucher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L901", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plremittancevoucher", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L901", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventory", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorytransaction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L962", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorytransaction", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L962", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorywarning", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L993", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorywarning", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L993", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldocumentreminder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1020", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldocumentreminder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1020", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargeapply", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1048", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargeapply", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1048", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceapply", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1073", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceapply", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1073", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceprocess", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1101", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceprocess", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1101", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureaapply", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1125", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureaapply", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1125", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureadisburse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1152", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureadisburse", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1152", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plocrusagemonth", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plocrusagemonth", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1176", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargerecord", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargerecord", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_120", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportaddress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_170", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldriver", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_196", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclepersonnel", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_217", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicledriver", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_347", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_406", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproductbrandqty", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L406", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_428", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanchange", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L428", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_517", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductfeedback", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L517", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_538", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductbrandqty", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L538", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_561", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportdblink", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L561", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_584", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplantransport", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L584", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_603", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportsitelink", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L603", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_636", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L636", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_666", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L666", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_692", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitembrandqty", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L692", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_715", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L715", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_745", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L745", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_771", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitembrandqty", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L771", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_794", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportapproval", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L794", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_823", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlement", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L823", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_855", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementapproval", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L855", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_882", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementtransport", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L882", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_902", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plremittancevoucher", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L902", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_963", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorytransaction", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L963", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_994", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorywarning", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L994", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1021", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldocumentreminder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1021", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1049", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargeapply", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1049", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1074", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceapply", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1074", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1102", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceprocess", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1126", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureaapply", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1153", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureadisburse", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1153", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1177", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plocrusagemonth", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1177", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_rationale_1196", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargerecord", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/models/pl_models.py", "source_location": "L1196", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcarrier", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plcert", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldocumentreminder", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pldriver", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlement", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementapproval", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plfreightsettlementtransport", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorder", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitem", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinboundorderitembrandqty", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventory", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorytransaction", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plinventorywarning", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plocrusagemonth", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorder", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitem", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_ploutboundorderitembrandqty", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plpersonnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplan", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanchange", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproduct", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplanproductbrandqty", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plplantransport", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plremittancevoucher", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransport", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportaddress", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportapproval", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportdblink", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductbrandqty", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportproductfeedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_pltransportsitelink", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicle", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicledriver", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceapply", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclemaintenanceprocess", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclepersonnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargeapply", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehiclerechargerecord", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureaapply", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_pl_models_plvehicleureadisburse"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa.json b/backend/graphify-out/cache/ast/v0.9.4/e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa.json new file mode 100644 index 000000000..6eab8e2ef --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "label": "test_pl_vehicle_personnel_photo_schema.py", "file_type": "code", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_create_accepts_photo_urls", "label": "test_vehicle_create_accepts_photo_urls()", "file_type": "code", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_update_accepts_photo_urls", "label": "test_vehicle_update_accepts_photo_urls()", "file_type": "code", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_create_accepts_photo_urls", "label": "test_personnel_create_accepts_photo_urls()", "file_type": "code", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_update_accepts_photo_urls", "label": "test_personnel_update_accepts_photo_urls()", "file_type": "code", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_rationale_1", "label": "\u8f66\u8f86/\u4eba\u5458 Schema \u63a5\u53d7 photoUrls\u3002", "file_type": "rationale", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "target": "app_schemas_pl_base_data", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_create_accepts_photo_urls", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_update_accepts_photo_urls", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_create_accepts_photo_urls", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_update_accepts_photo_urls", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L37", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_create_accepts_photo_urls", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L8", "receiver": "VehicleCreate"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_update_accepts_photo_urls", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L20", "receiver": "VehicleUpdate"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_create_accepts_photo_urls", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L25", "receiver": "PersonnelCreate"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_update_accepts_photo_urls", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py", "source_location": "L38", "receiver": "PersonnelUpdate"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_create_accepts_photo_urls", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_personnel_update_accepts_photo_urls", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_create_accepts_photo_urls", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_vehicle_personnel_photo_schema_test_vehicle_update_accepts_photo_urls"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/stat-index.json b/backend/graphify-out/cache/stat-index.json index 2b42cae24..e8a9a432d 100644 --- a/backend/graphify-out/cache/stat-index.json +++ b/backend/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957226402359,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628178366109,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998986861832,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50055,"mtime_ns":1782855138852859245,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473640363111,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553836870448,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7820,"mtime_ns":1783820526204158517,"hash":"b8d626eca1b0fc6b0216a66afb1cf234155310d3077d940d5158111f873a414b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25974,"mtime_ns":1783820522540308906,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151289,"mtime_ns":1784119033682636742,"hash":"ceaa64369ef66891310f391836c580beefd5a69854b3a5a0539a419744a311b0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672041317102,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1784195323916483606,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92433,"mtime_ns":1783763318740360571,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705954031080,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986040417425,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25633,"mtime_ns":1783825326810765171,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526614169736,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556349035158,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567004734594,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967707088251,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":15431,"mtime_ns":1783747621462206303,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614591546341,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581266319098,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035144390497,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035873015369,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":61386,"mtime_ns":1784032430468998611,"hash":"e23b4653b806a1917eba187d8a3584dff598ad74bc21c8295c179abf0bcfe17e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":22053,"mtime_ns":1783754594278544472,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":17945,"mtime_ns":1783211732481443217,"hash":"477ebd0c4c084cf8bccd10865e4703b6b34829d30b791c32232d96c1bac2947f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582112287271,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11275,"mtime_ns":1783213205154827373,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580346813026,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":48150,"mtime_ns":1783945795484267217,"hash":"a9a876816af12e43b3fa6b9dc748b74b7107f0cae590e68a2a789945617c620e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":33087,"mtime_ns":1783155250374329483,"hash":"6f7703d37ce761406d42f3be4e53ee85be0d3e43e5b880401087dde47ec6608f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1243,"mtime_ns":1784035957226411568,"hash":"7d66d74042036571b769e5364616560597a3c3347cb9dea6cfbe04c40483b5e2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751060550793,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851800999450,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13188,"mtime_ns":1783242583174353699,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19762,"mtime_ns":1783849843323086946,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044115228598,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439910099822,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":39798,"mtime_ns":1783768766029953703,"hash":"0e0620d2878e4b28c560daf8095d30e8e8a281653d40baf01ef94e899ce114e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9697,"mtime_ns":1783209147246415813,"hash":"aac3cfd1a30df824d1a4867c5b358e3155e19a051dbaffbae89c995b55767a8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749440894312,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660985345577,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738132414332,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204589333188,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3479,"mtime_ns":1783848338604396640,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938743438422,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151873696556,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360746020898,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539731495489,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484528042124,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000967398,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586212866839,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958449266456,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744737524455,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340132373787,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697391655899,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793703960795,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567212910729,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582921626135,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109621359209,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856670799736,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82266,"mtime_ns":1784119136237565207,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049450807031,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051207137180,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394518896877,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759829460303,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967244318920,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576747470605,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019912997576,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927743333340,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477739135462,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538627076795,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1783855936414773748,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485781974173,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483854587001,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1783861492796558653,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925852062495,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690842141129,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128258640426,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816251409459,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947929403985,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258025843303,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271166904779,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353771580120,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1783887050391179085,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1783888844450695833,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258230435217,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475224438064,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968430310316,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793684378982,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957225824939,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700055450000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210609057675,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423540552834,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554297827011,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560635390924,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573332360310,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/zlwu/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930820914793,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547991214820,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982000000000,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649000000000,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50332,"mtime_ns":1785469147058813215,"hash":"b2038d923003b4b9c0545217d6f8077b811fe7d15881a56daaeb28eac3024538"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":827,"mtime_ns":1784980394000000000,"hash":"8bd7939017216a2b3c9ea7ed910167f7baf5c02cf724c10b392f6f286f6368a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13404,"mtime_ns":1784992736000000000,"hash":"e09d555bad6b1a0ab289d045dda5a4231a54316e34616f60b03f724f9152e73c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898000000000,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913000000000,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581000000000,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":17764,"mtime_ns":1785473021311995564,"hash":"7bdd9f93c359800774b48c268d6ef56c6abcdc9ffbad3f50ddb71a88da506014"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913000000000,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151307,"mtime_ns":1785201644248461923,"hash":"c30d4eda6a95a713dd0598c5d4eb4163579510db58887ed8e74b489dcd6a4a7f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":31366,"mtime_ns":1785582201623110512,"hash":"8dc61a9acfd6c688d60733291382cfee9712f600b370c4f6e7a5fc4c70e12f37"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354000000000,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":27413,"mtime_ns":1785582207627862716,"hash":"030260b446ad51a39654ee9bc869cc8904e07390d47447b0ce238888ba15316e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200000000000,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340000000000,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035000000000,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035000000000,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898000000000,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688000000000,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854000000000,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854000000000,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854000000000,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1401,"mtime_ns":1784428053000000000,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":32882,"mtime_ns":1784993134000000000,"hash":"1bfeff4b19b3e8020c12c31e337f4d5131170fdb3974bf3593f3bb77de10ddc1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751000000000,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13443,"mtime_ns":1785202430756770222,"hash":"b14a59968214a71d272cc6fbfc2555a9ea39eb8174697a75bec673bdfda1b074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":12552,"mtime_ns":1785484571840900864,"hash":"c1508e2c882a86f5dc3982e2262762704a0c6ec3f15cbbca688e51ccefa6a4c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582000000000,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957000000000,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":53516,"mtime_ns":1785453587549056220,"hash":"129c2d09968a90f83cb86001cb3f95174a1b322857e3dc7e69b80d4fb9c93ed3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":6947,"mtime_ns":1785446228430209460,"hash":"74ac18f644a2fb5454714b0c26e4efb4f2838cbb579c3771ab3727b4ce7471ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":9607,"mtime_ns":1785451214459593031,"hash":"c9d7d58d5f52fbc38c57a35db878499e9007a23579ca4afcc1b23e9d89574f93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":14689,"mtime_ns":1785451206327142197,"hash":"93ae31a9c31bb9d67b9b5bdb62c367a18b497fe10a48508a5d1ef13f02b3ba2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":35018,"mtime_ns":1785447176422326611,"hash":"ef6de0a2d4639df270b33474966feb66b1366109bdf984062d0187b22189ed43"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6737,"mtime_ns":1784993134000000000,"hash":"e7cc69318bb266a6fb28a9e8163b16e459b879e6041b226d9870477d3bf1c378"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447000000000,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867000000000,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220000000000,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998000000000,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854000000000,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930000000000,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930000000000,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930000000000,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001000000000,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669000000000,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602000000000,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841000000000,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780000000000,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/config.py":{"size":7267,"mtime_ns":1785592475563320549,"hash":"bcca3bde37f41523158b4f083c56cf4c37e03d218bb9f1ce51e2a55d7fce1807"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930000000000,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8432,"mtime_ns":1784993108000000000,"hash":"16fd3ff8a3dde7397d55829d83c8541f6cbfb11145bfa8f2ae4e28fcaf4e2f60"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847000000000,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853000000000,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930000000000,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610000000000,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930000000000,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930000000000,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930000000000,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327000000000,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254000000000,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326000000000,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930000000000,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834000000000,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930000000000,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930000000000,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930000000000,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":15372,"mtime_ns":1785592530623303275,"hash":"f4b21123bd305d7e59ebd95cd1942b150a95943d4c3b7288fd049c3ebdc4cc1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410000000000,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930000000000,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930000000000,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930000000000,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930000000000,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354000000000,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930000000000,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930000000000,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705000000000,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674000000000,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305000000000,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664000000000,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":91149,"mtime_ns":1785479747157279521,"hash":"2331b1347e35b0b2229f8ad2937ca2a01891c014cfb67e61f5fec170910c6cf7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324000000000,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13694,"mtime_ns":1785201816045624515,"hash":"065d84b86eae1b304ba84b48f5a77de89b4fef14fe714a61b31343c531887e1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664000000000,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665000000000,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237000000000,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085000000000,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666000000000,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666000000000,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986000000000,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669000000000,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680000000000,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560000000000,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":36159,"mtime_ns":1785631677876643461,"hash":"c27bdf7d41cac056bcf293907bfc7afd6c0938825c75425ec0ae3f3f5c82e4e0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48769,"mtime_ns":1784996795000000000,"hash":"dc5215156270917090fb404c6f7455b48617e9554305fdc4c66fe70f0befe423"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314000000000,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":13183,"mtime_ns":1785201813742913960,"hash":"20f79ad1a386d9f3d5192d154132b799380e754778f98cf5c940a782626fc8bd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254000000000,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310000000000,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":7182,"mtime_ns":1784996460000000000,"hash":"2c244898e16084f533aa42a0a3b45106a99515ebf627d37557b22549fd1f0035"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6593,"mtime_ns":1784993073000000000,"hash":"a636f1c45bd0dd0b2e6c337061f3d1ce4119b130d444d6b31bf7f1be4782fa67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5379,"mtime_ns":1784993069000000000,"hash":"750a883eb752a96e26f22267171a941345201afa9d2ff243c4c4569d02a735ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5456,"mtime_ns":1784993071000000000,"hash":"d7f64d813e31ed3751b6399245ba502f953644569c75dce0a98598d38b0efde2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":961,"mtime_ns":1784993074000000000,"hash":"ba2c043bc078010880031293f6e2f0f01e9b820d191ff6989bf65983903f063c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678000000000,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282000000000,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352000000000,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":2688,"mtime_ns":1785469127578334497,"hash":"88d704b7041a2ae458860c7a93357cff50bc5a8164939151326c22266f300487"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5081,"mtime_ns":1784993075000000000,"hash":"12619e8ae3e341e757e8696459241924d761161a629b2804d0e1c3611b4d6a67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282000000000,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002000000000,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6442,"mtime_ns":1784993075000000000,"hash":"a5f9e5ab9008186c0001c480bd702e6217946eedc17b2e35eb25ad06edcfccca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281000000000,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628000000000,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290000000000,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py":{"size":6588,"mtime_ns":1784428054000000000,"hash":"5fb1824a47d8362c5b98661559be23282c31c1b3dbedc4a89da42df6ec610b1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2508,"mtime_ns":1785445893850945734,"hash":"c6482a76c0273e7916ac15991de22851a53c3c20cfa922a6431e26cbdc4164aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930000000000,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":22196,"mtime_ns":1785472986385441979,"hash":"7027faa05ebc02388df5ac563561a826f3b107a9c55d927da60cf4ef85327d9e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":71968,"mtime_ns":1785561859218571928,"hash":"d78d1ed8e2b0a0b4bc3bad72c962836de29ea0c16054069859517eb4ca910f18"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570000000000,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345000000000,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":77415,"mtime_ns":1785445911238805668,"hash":"723076b8d3f0c040c205fd161b87bc2d3457b2322452ce8b2547ad24ed7e645d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973000000000,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930000000000,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930000000000,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556000000000,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296000000000,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871000000000,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187000000000,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293000000000,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":7641,"mtime_ns":1785473904076010280,"hash":"9e3bd83e926020fbcdc81264afa766f63a27d71d7c71e772d581b5d4019d82ac"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293000000000,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930000000000,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022000000000,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840000000000,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10671,"mtime_ns":1785418059662177093,"hash":"be3c4f394aa2ee009515127647c54bad54936d9f6c1ecd36e391efae192b6960"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672000000000,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410000000000,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198000000000,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386000000000,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127000000000,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212000000000,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554000000000,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":9514,"mtime_ns":1785201684922273556,"hash":"f4b9b55d1a4e43b9d09c2193095223a922b97224baa660817c8b5fc5647985f6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":6173,"mtime_ns":1785418147320158849,"hash":"36361e9100bbaea5768c3428c2adca7a5393e51915400fdc71e9a6b4a2ad9c9f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410000000000,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":4149,"mtime_ns":1784996454000000000,"hash":"25bc81362d6365c8bd852892890f3ff0c74fd702016cb21104c3bdfa51e2f858"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619000000000,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990000000000,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604000000000,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329000000000,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660000000000,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341000000000,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930000000000,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930000000000,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353000000000,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582000000000,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":17829,"mtime_ns":1784957273000000000,"hash":"3d51d0a0f2f54dc44f2f987171b9f84439be3c07cfd044c2ebe5c87f41b977b2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360000000000,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11299,"mtime_ns":1785439224271183303,"hash":"ba898caafbe6c8f4c5729c2521917eeaf92fa3c649626232d326eb255f0c177f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":8319,"mtime_ns":1785202429973819450,"hash":"63ec5922aa1e9bdf8c3b7dfc5b0ccb555535cbf949e32a1055237ba86faaa146"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":5908,"mtime_ns":1785450376207250209,"hash":"eb0ebe1400d6d0f7fd614561986c6f5d2072946e459c90b06761f0754a0a482b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567000000000,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":23874,"mtime_ns":1785453577889781284,"hash":"346dd41170ff374014149c5b4e0f442e58040200b17dc69b20d05f18fe235a59"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446000000000,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":20802,"mtime_ns":1785451180420705219,"hash":"ae069b93e5dca487543132014dab26c9a57ab6c714c3613d3e8527b589fff282"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539000000000,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447000000000,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169000000000,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196000000000,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930000000000,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930000000000,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594000000000,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967000000000,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200000000000,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868000000000,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3984,"mtime_ns":1784993089000000000,"hash":"dd56d9197b4cddc60570bf5eb1851d4a426ab226858beb95bccb33a839471ea5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4639,"mtime_ns":1784993106000000000,"hash":"2640940d1851d60e7ba515d759a0aa06843b764742ae1ea2fabb95b6a16136f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":50167,"mtime_ns":1785473904076135989,"hash":"62aa40e704008af56df7fd19b786de94d291218976106b1c59ee2b2332639b5b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3610,"mtime_ns":1785592530823872489,"hash":"9c5f871f6c22e837bfee2fc52af6a06588f6f509441485054ec2a138bc91211e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5617,"mtime_ns":1784993093000000000,"hash":"514ea42e366fff44f1becbde6b5bfa219a224517e47dcdec25c8cf803a3ec0b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938000000000,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127000000000,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614000000000,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400000000000,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632000000000,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619000000000,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092000000000,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268000000000,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818000000000,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142000000000,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":1735,"mtime_ns":1784957286000000000,"hash":"7ab4f5c5a28b0af2c8ddfc91bbc425a9fc5246956afdfd29ae4ca0af32d73cb6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10601,"mtime_ns":1784947515000000000,"hash":"a98e229da05d7245b06701f3a166dd30f15a28d117b4389ecb8f03bb6d9d0851"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439000000000,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506000000000,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749000000000,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204000000000,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276000000000,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py":{"size":31821,"mtime_ns":1785452761834196393,"hash":"b98fd44f3f42b76ef8ec0797f6842c68f8ccee56368969f5152d86ccafa69167"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109000000000,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700000000000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044000000000,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":43616,"mtime_ns":1785447059067456413,"hash":"68481c4cfc56bb9b948f45a84f6ab7e467b0a00199f32bfd388dcd4c0d9eb3fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460000000000,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450000000000,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248000000000,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151000000000,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938000000000,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213000000000,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473000000000,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930000000000,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992000000000,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067000000000,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350000000000,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095000000000,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000000000,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127000000000,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396000000000,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556000000000,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830000000000,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127000000000,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930000000000,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517000000000,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510000000000,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128000000000,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410000000000,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1785455807105877935,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856000000000,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1785455807106788561,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36352,"mtime_ns":1785469153230627041,"hash":"b78319ae19a0089684e1ffe1993a1b62be2d687ab65a3e69da423247e0d4d4d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1785455807108557895,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1785455807109188438,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1785455807109946855,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":14973,"mtime_ns":1785457303643810528,"hash":"83b693cbc1a590f7a3cd6af2387e638f28474c230fc6f4c0a2813f343d35d887"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":16785,"mtime_ns":1785462269008382807,"hash":"35d9a064be6f0ac00b6b2162d77d710a2c4f108824eb78425de2341d576cf7fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1785455807110995231,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":23401,"mtime_ns":1785468795797340265,"hash":"f2d9da1743e3997bf7361d39ff66eab588d7dd55d2114dc9cf6796f4f697a9c3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1785455807112164732,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051000000000,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049000000000,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586000000000,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793000000000,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958000000000,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340000000000,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697000000000,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744000000000,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1785455807113727900,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1785465354405875664,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394000000000,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927000000000,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019000000000,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576000000000,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538000000000,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793000000000,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423000000000,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573000000000,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547000000000,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260719_pl_inbound_outbound_order.sql":{"size":10843,"mtime_ns":1784427911426172052,"hash":"baab6333d8e0865e72a9c474eb642bd5b166f9d70a6db5825d315574f66df069"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231000000000,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279000000000,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163000000000,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483000000000,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1785455807114125233,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102000000000,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82807,"mtime_ns":1784948075068625581,"hash":"b712bc6d4b5a248a26706137f601e26d81bdb7ffdae016ff818a77155afe15a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477000000000,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210000000000,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485000000000,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355000000000,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661000000000,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048000000000,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647000000000,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611000000000,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759000000000,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968000000000,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930000000000,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/wuzilong/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356000000000,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/wuzilong/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581000000000,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_enrichment.py":{"size":2097,"mtime_ns":1784450322000000000,"hash":"0f0fba3a24b2eeda1af4c30180306eca8da5f3dd1807f2e7591f4c46548440c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3527,"mtime_ns":1785446258255101137,"hash":"fc53fd735e09b39e7cfe085ca6756f87396b6954f7057fde2bfca39524c34276"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_tripartite_cert_gates.py":{"size":2003,"mtime_ns":1784947499000000000,"hash":"312091d1017c2f22195a9317cd6f39c880cd5aa6b27acaf343181319f045ffee"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_carrier_eligible.py":{"size":689,"mtime_ns":1784947707000000000,"hash":"a3093ae31166d40d7836abb3575c0d4d50ff9e9bf23fee8e7a291afdec39fedd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/paste_recognize.py":{"size":1845,"mtime_ns":1784955105000000000,"hash":"2a1d015e85b6d9e25d54d94940627a713f4c6e7422dff350c20c4036176d11dc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_paste_recognize_service.py":{"size":9669,"mtime_ns":1784955109000000000,"hash":"2d4e38178168b11f3aeea64a4d0ab4ae60c9a93ad9d7d7568456374af65d7c57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260725_pl_tripartite_menus.sql":{"size":2113,"mtime_ns":1784948072087970834,"hash":"c4897f7cff3c22535726f105d1f2e543eb551f6543e8b256ced85ae2a38ee683"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/invoice.py":{"size":5868,"mtime_ns":1784991682000000000,"hash":"65eced0eea3c4f9567842be545d2eb042c24398d5ff5eeda2aff693fcff06ff2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/invoice.py":{"size":1896,"mtime_ns":1784982228000000000,"hash":"909460b2883e85110e15a56d5755748e1bcb3e26dffac89684440813788e8668"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice.py":{"size":14356,"mtime_ns":1784991670000000000,"hash":"fb3fac6667d415b032880fde5ef3413dfac150686b738d6b644ea07d0fc96412"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice_ledger.py":{"size":10778,"mtime_ns":1784980394000000000,"hash":"2b67dc7e5d7280235dbe594bc6a984747ceb3415a527c78516cd60ef3ebccf1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_supplier_hazard.py":{"size":3425,"mtime_ns":1784998230000000000,"hash":"2365e02c6f2584dd6d18e1ad3c8d3075096777b244cc1430ef913254c61a9442"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_invoice_ledger.py":{"size":1427,"mtime_ns":1784980394000000000,"hash":"9fc702e7becd491b05b730b711ea911f393f2d15509bc5f03f4e70edf7770a9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_supplier_hazard.py":{"size":855,"mtime_ns":1784996182000000000,"hash":"ce8bd619b1a6dc746541a57eccc095d19ccde3bdb88341995631e15fcfb14bca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_pl_plan_create_date.sql":{"size":536,"mtime_ns":1785140686875543544,"hash":"0694b0b031a6461d8a8940f7403739a8d20fd018403a02a8f1e0e8bf2bc1490f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_create_date.py":{"size":299,"mtime_ns":1785140895170402200,"hash":"7a05f3fcc2d9a36f08b0801f6fbf6ee4fe58982d9212d7a10a70b8b4d41b6f85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_crm_product_brand_alias.sql":{"size":4594,"mtime_ns":1785160650030737687,"hash":"f9f6ea6ca8e31cf5622a31f8303fe81174769b7d094645a88dccfcd6484b9cc4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_brand_archive.py":{"size":3334,"mtime_ns":1785453570763074999,"hash":"feca7ad16664603f04ee7fa38f03187ecfb70978cc41fcdb47d3fbfb54a11fbc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_service.py":{"size":7058,"mtime_ns":1785453321817830521,"hash":"a13cd5ea34dabe91b4663551824c3da9fd2a64ac3fcbc46b2b099644f308b457"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_split_brand_from_product_name.py":{"size":5120,"mtime_ns":1785202591782265408,"hash":"d9d9b949cc5f275764b7ea771616141084a0c7cd256dd3262bf532cf4ac0f20f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_brand_archive.py":{"size":2440,"mtime_ns":1785453323711185768,"hash":"2a704d8278c46f510fa020cd9aed4ea26fd978262d7fe728287bcfe5726798e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_plan_plan_date_nullable.sql":{"size":223,"mtime_ns":1785439209757662121,"hash":"50a633398cc1c8288c8b5fa221885272ca963c4b777b70102c96632f2d51047a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_feedback_brand_qty.py":{"size":9813,"mtime_ns":1785452749855419713,"hash":"c67d06fc7ac5cc9b3be0c2005f30a4914ca97c27cd5a7c80e7814382cb05c82d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_feedback_brand_qty.sql":{"size":4927,"mtime_ns":1785445506581710120,"hash":"618b647158c133824ead60382d2b6e73713ea32a7b2224efedea431e071cc89a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_feedback_brand_qty.py":{"size":3424,"mtime_ns":1785452788497663858,"hash":"1fe2a5c0b1968f864ef22a436b0e13a697977ef09a71c6e8bfda46da25825f90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_product_display.py":{"size":3590,"mtime_ns":1785451173102957680,"hash":"728e1d79035875ac350201c943241493f04006a2e1f71d7e3e41571eeac721e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_customer_license_urls.py":{"size":7789,"mtime_ns":1785467213374029636,"hash":"a0faaa83477187d8b4a9299d1b170f5ea2c5ca3b450fb4437bf1dc30ab1b5b1b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_contract_attachment_urls.py":{"size":9795,"mtime_ns":1785469147228035015,"hash":"6331fa977cbb794c3ee9cb072692c63b05f23f071ab8df1d0b8368455af3b82c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_bx_reimburse_invoice_attachment_id.sql":{"size":784,"mtime_ns":1785473095766881076,"hash":"702c6845b0b936d4a5a06918fcebefd71b38ca4b2dcd7e51ee45af19c77407b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approver_setting.py":{"size":3632,"mtime_ns":1785560604338687232,"hash":"7442687a3dde4a0a354064c3fef7503d37c9ce3f1991873e64befd2d1812ba4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_quote_approver_setting.py":{"size":1015,"mtime_ns":1785560055190832342,"hash":"2a7e91833de33ed92ac8e9157746f15fd7a9e7c5f25bf043dfb0dd7c77859715"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote_approver_setting.py":{"size":291,"mtime_ns":1785560601528774704,"hash":"e978cab24ee46f23b7432bb6f411e760f2d8d782a924efe811608c2200fcba0a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_quote_approver_setting.sql":{"size":2117,"mtime_ns":1785560449173091996,"hash":"66c92fbf3031539484e241934c14fee379a70b1b179a8b8345c5ae70c8498f14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approver_setting.py":{"size":2875,"mtime_ns":1785561463337293690,"hash":"7c3aeed13e66f67159220b323298b414a9d1b1f9ca6b679dca31532be86a132e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract_approver_setting.py":{"size":294,"mtime_ns":1785561469090499071,"hash":"fca8a7cb3a75c82e9c3395f2471e20dfcdc469a8fd299c9c6ce5e79576a6c3fb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_contract_approver_setting.sql":{"size":1903,"mtime_ns":1785561454940491268,"hash":"f81470b97da71283b9d3defc81fd177cc2fea1dbd487febaebf7a8f24a73c71f"}} \ No newline at end of file +{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957226402359,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628178366109,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998986861832,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50055,"mtime_ns":1782855138852859245,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473640363111,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553836870448,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7820,"mtime_ns":1783820526204158517,"hash":"b8d626eca1b0fc6b0216a66afb1cf234155310d3077d940d5158111f873a414b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25974,"mtime_ns":1783820522540308906,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151289,"mtime_ns":1784119033682636742,"hash":"ceaa64369ef66891310f391836c580beefd5a69854b3a5a0539a419744a311b0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672041317102,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1784195323916483606,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92433,"mtime_ns":1783763318740360571,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705954031080,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986040417425,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25633,"mtime_ns":1783825326810765171,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526614169736,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556349035158,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567004734594,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967707088251,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":15431,"mtime_ns":1783747621462206303,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614591546341,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581266319098,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035144390497,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035873015369,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":61386,"mtime_ns":1784032430468998611,"hash":"e23b4653b806a1917eba187d8a3584dff598ad74bc21c8295c179abf0bcfe17e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":22053,"mtime_ns":1783754594278544472,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":17945,"mtime_ns":1783211732481443217,"hash":"477ebd0c4c084cf8bccd10865e4703b6b34829d30b791c32232d96c1bac2947f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582112287271,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11275,"mtime_ns":1783213205154827373,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580346813026,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":48150,"mtime_ns":1783945795484267217,"hash":"a9a876816af12e43b3fa6b9dc748b74b7107f0cae590e68a2a789945617c620e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":33087,"mtime_ns":1783155250374329483,"hash":"6f7703d37ce761406d42f3be4e53ee85be0d3e43e5b880401087dde47ec6608f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1243,"mtime_ns":1784035957226411568,"hash":"7d66d74042036571b769e5364616560597a3c3347cb9dea6cfbe04c40483b5e2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751060550793,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851800999450,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13188,"mtime_ns":1783242583174353699,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19762,"mtime_ns":1783849843323086946,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044115228598,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439910099822,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":39798,"mtime_ns":1783768766029953703,"hash":"0e0620d2878e4b28c560daf8095d30e8e8a281653d40baf01ef94e899ce114e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9697,"mtime_ns":1783209147246415813,"hash":"aac3cfd1a30df824d1a4867c5b358e3155e19a051dbaffbae89c995b55767a8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749440894312,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660985345577,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738132414332,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204589333188,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3479,"mtime_ns":1783848338604396640,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938743438422,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151873696556,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360746020898,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539731495489,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484528042124,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000967398,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586212866839,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958449266456,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744737524455,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340132373787,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697391655899,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793703960795,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567212910729,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582921626135,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109621359209,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856670799736,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82266,"mtime_ns":1784119136237565207,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049450807031,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051207137180,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394518896877,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759829460303,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967244318920,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576747470605,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019912997576,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927743333340,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477739135462,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538627076795,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1783855936414773748,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485781974173,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483854587001,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1783861492796558653,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925852062495,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690842141129,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128258640426,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816251409459,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947929403985,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258025843303,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271166904779,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353771580120,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1783887050391179085,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1783888844450695833,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258230435217,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475224438064,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968430310316,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793684378982,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957225824939,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700055450000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210609057675,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423540552834,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554297827011,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560635390924,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573332360310,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/zlwu/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930820914793,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547991214820,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982000000000,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649000000000,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50332,"mtime_ns":1785469147058813215,"hash":"b2038d923003b4b9c0545217d6f8077b811fe7d15881a56daaeb28eac3024538"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":827,"mtime_ns":1784980394000000000,"hash":"8bd7939017216a2b3c9ea7ed910167f7baf5c02cf724c10b392f6f286f6368a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13404,"mtime_ns":1784992736000000000,"hash":"e09d555bad6b1a0ab289d045dda5a4231a54316e34616f60b03f724f9152e73c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898000000000,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913000000000,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15715,"mtime_ns":1783745581000000000,"hash":"0d0b8823013a63f91baee0ea19b56f203e70fb1e450f873cfeb634a6cd017f54"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":17764,"mtime_ns":1785473021311995564,"hash":"7bdd9f93c359800774b48c268d6ef56c6abcdc9ffbad3f50ddb71a88da506014"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913000000000,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":151307,"mtime_ns":1785201644248461923,"hash":"c30d4eda6a95a713dd0598c5d4eb4163579510db58887ed8e74b489dcd6a4a7f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":31366,"mtime_ns":1785582201623110512,"hash":"8dc61a9acfd6c688d60733291382cfee9712f600b370c4f6e7a5fc4c70e12f37"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354000000000,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":27413,"mtime_ns":1785582207627862716,"hash":"030260b446ad51a39654ee9bc869cc8904e07390d47447b0ce238888ba15316e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200000000000,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340000000000,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16423,"mtime_ns":1783156035000000000,"hash":"901602a8fe362aec9b89ac6f2ee578f1eeb105fcf12a1a6c3ff4ef98f4ad1ef3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":17098,"mtime_ns":1783156035000000000,"hash":"bd2c8344e2ab765ceb2a2c91f5cf2facea319ae66c9097f5468a7f5d753b67dd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898000000000,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688000000000,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854000000000,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854000000000,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854000000000,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1401,"mtime_ns":1784428053000000000,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":32960,"mtime_ns":1785637805321715091,"hash":"5f2a6a293a908b0c2dfd58836355ca79885e485a1a043a61d64f44cf8804430a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10543,"mtime_ns":1783760751000000000,"hash":"2d64ca83553dbfc928887171941761114c5db012b9c4a01d34e2b522902bac38"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":13443,"mtime_ns":1785202430756770222,"hash":"b14a59968214a71d272cc6fbfc2555a9ea39eb8174697a75bec673bdfda1b074"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":12552,"mtime_ns":1785484571840900864,"hash":"c1508e2c882a86f5dc3982e2262762704a0c6ec3f15cbbca688e51ccefa6a4c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/menu_badges.py":{"size":1203,"mtime_ns":1783257582000000000,"hash":"05dfdc446281abd9c3b273ebae2f9cbc4efe681fdc0ab288a77903e9e2bf83c7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/ocr.py":{"size":1889,"mtime_ns":1784035957000000000,"hash":"1de70651a8c1c9e0e208bdccb45d0b9c7e7a0f8f9a663941bdbd5ae278234b1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":53516,"mtime_ns":1785453587549056220,"hash":"129c2d09968a90f83cb86001cb3f95174a1b322857e3dc7e69b80d4fb9c93ed3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":6947,"mtime_ns":1785446228430209460,"hash":"74ac18f644a2fb5454714b0c26e4efb4f2838cbb579c3771ab3727b4ce7471ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":9607,"mtime_ns":1785451214459593031,"hash":"c9d7d58d5f52fbc38c57a35db878499e9007a23579ca4afcc1b23e9d89574f93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":14689,"mtime_ns":1785451206327142197,"hash":"93ae31a9c31bb9d67b9b5bdb62c367a18b497fe10a48508a5d1ef13f02b3ba2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":35018,"mtime_ns":1785447176422326611,"hash":"ef6de0a2d4639df270b33474966feb66b1366109bdf984062d0187b22189ed43"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6737,"mtime_ns":1784993134000000000,"hash":"e7cc69318bb266a6fb28a9e8163b16e459b879e6041b226d9870477d3bf1c378"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447000000000,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867000000000,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220000000000,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/public.py":{"size":12682,"mtime_ns":1783858998000000000,"hash":"b98ac3f3bc95c2b42c481ac9ae9137528e55845d425e5d2184827dc424304e42"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854000000000,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930000000000,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930000000000,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930000000000,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001000000000,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669000000000,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602000000000,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841000000000,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780000000000,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/config.py":{"size":7267,"mtime_ns":1785592475563320549,"hash":"bcca3bde37f41523158b4f083c56cf4c37e03d218bb9f1ce51e2a55d7fce1807"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930000000000,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8432,"mtime_ns":1784993108000000000,"hash":"16fd3ff8a3dde7397d55829d83c8541f6cbfb11145bfa8f2ae4e28fcaf4e2f60"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847000000000,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853000000000,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930000000000,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610000000000,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930000000000,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930000000000,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930000000000,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327000000000,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254000000000,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326000000000,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930000000000,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834000000000,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930000000000,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930000000000,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930000000000,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":15372,"mtime_ns":1785592530623303275,"hash":"f4b21123bd305d7e59ebd95cd1942b150a95943d4c3b7288fd049c3ebdc4cc1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410000000000,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930000000000,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930000000000,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930000000000,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930000000000,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354000000000,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930000000000,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930000000000,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25820,"mtime_ns":1783155705000000000,"hash":"3526af7e7e79d505911690355890ccdb3a1c30d302534ffdc8626a454cc2499b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674000000000,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305000000000,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664000000000,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":91149,"mtime_ns":1785479747157279521,"hash":"2331b1347e35b0b2229f8ad2937ca2a01891c014cfb67e61f5fec170910c6cf7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324000000000,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13694,"mtime_ns":1785201816045624515,"hash":"065d84b86eae1b304ba84b48f5a77de89b4fef14fe714a61b31343c531887e1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664000000000,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665000000000,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237000000000,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085000000000,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666000000000,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666000000000,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":10069,"mtime_ns":1783821986000000000,"hash":"06c9f3deab3472b20429c12a618ae2d4d6efd3afa2353ac44cd52651a596af4c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669000000000,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680000000000,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/price_letter.py":{"size":13292,"mtime_ns":1784122560000000000,"hash":"1edbd17d41fcc4205faf15de5ce47aecc5459a39d06a920689379a65cdb9c3d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":36159,"mtime_ns":1785631677876643461,"hash":"c27bdf7d41cac056bcf293907bfc7afd6c0938825c75425ec0ae3f3f5c82e4e0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48769,"mtime_ns":1784996795000000000,"hash":"dc5215156270917090fb404c6f7455b48617e9554305fdc4c66fe70f0befe423"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314000000000,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":13183,"mtime_ns":1785201813742913960,"hash":"20f79ad1a386d9f3d5192d154132b799380e754778f98cf5c940a782626fc8bd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254000000000,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310000000000,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":7182,"mtime_ns":1784996460000000000,"hash":"2c244898e16084f533aa42a0a3b45106a99515ebf627d37557b22549fd1f0035"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6593,"mtime_ns":1784993073000000000,"hash":"a636f1c45bd0dd0b2e6c337061f3d1ce4119b130d444d6b31bf7f1be4782fa67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5379,"mtime_ns":1784993069000000000,"hash":"750a883eb752a96e26f22267171a941345201afa9d2ff243c4c4569d02a735ea"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5456,"mtime_ns":1784993071000000000,"hash":"d7f64d813e31ed3751b6399245ba502f953644569c75dce0a98598d38b0efde2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":961,"mtime_ns":1784993074000000000,"hash":"ba2c043bc078010880031293f6e2f0f01e9b820d191ff6989bf65983903f063c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678000000000,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282000000000,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352000000000,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":2688,"mtime_ns":1785469127578334497,"hash":"88d704b7041a2ae458860c7a93357cff50bc5a8164939151326c22266f300487"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5081,"mtime_ns":1784993075000000000,"hash":"12619e8ae3e341e757e8696459241924d761161a629b2804d0e1c3611b4d6a67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282000000000,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002000000000,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6442,"mtime_ns":1784993075000000000,"hash":"a5f9e5ab9008186c0001c480bd702e6217946eedc17b2e35eb25ad06edcfccca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281000000000,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":14214,"mtime_ns":1783851628000000000,"hash":"aeac623e3020fee4cdd01e463ced23e4e03539a17c5b57dcbd9d88aac5a4fb4f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290000000000,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py":{"size":6588,"mtime_ns":1784428054000000000,"hash":"5fb1824a47d8362c5b98661559be23282c31c1b3dbedc4a89da42df6ec610b1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2508,"mtime_ns":1785445893850945734,"hash":"c6482a76c0273e7916ac15991de22851a53c3c20cfa922a6431e26cbdc4164aa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930000000000,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":22196,"mtime_ns":1785472986385441979,"hash":"7027faa05ebc02388df5ac563561a826f3b107a9c55d927da60cf4ef85327d9e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":71968,"mtime_ns":1785561859218571928,"hash":"d78d1ed8e2b0a0b4bc3bad72c962836de29ea0c16054069859517eb4ca910f18"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570000000000,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345000000000,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":77637,"mtime_ns":1785637538682041479,"hash":"8d1d7645a644d8ae2296285e416ceb7f3b7f493fb5e7fb94b0645133b3cff9bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973000000000,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930000000000,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930000000000,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556000000000,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296000000000,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871000000000,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187000000000,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293000000000,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":7641,"mtime_ns":1785473904076010280,"hash":"9e3bd83e926020fbcdc81264afa766f63a27d71d7c71e772d581b5d4019d82ac"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293000000000,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930000000000,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410000000000,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022000000000,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840000000000,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10671,"mtime_ns":1785418059662177093,"hash":"be3c4f394aa2ee009515127647c54bad54936d9f6c1ecd36e391efae192b6960"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1783823672000000000,"hash":"b91167282158aeb11046dccc4bf2f29a13307a0413b3d7b3c860b17d37f8ad4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410000000000,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198000000000,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386000000000,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127000000000,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212000000000,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/price_letter.py":{"size":3994,"mtime_ns":1784122554000000000,"hash":"6cd75fdbbd6a2dc65cf0b0b29e6206910fbd86f8bedf05bb56a8835130b81829"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":9514,"mtime_ns":1785201684922273556,"hash":"f4b9b55d1a4e43b9d09c2193095223a922b97224baa660817c8b5fc5647985f6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":6173,"mtime_ns":1785418147320158849,"hash":"36361e9100bbaea5768c3428c2adca7a5393e51915400fdc71e9a6b4a2ad9c9f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410000000000,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":4149,"mtime_ns":1784996454000000000,"hash":"25bc81362d6365c8bd852892890f3ff0c74fd702016cb21104c3bdfa51e2f858"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619000000000,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990000000000,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604000000000,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329000000000,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1492,"mtime_ns":1783211660000000000,"hash":"ed4e21307ac463410d296a2f8cf53f8e0429187344537bcf1e1212a7affa06a6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341000000000,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930000000000,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930000000000,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127000000000,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353000000000,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":5012,"mtime_ns":1783242582000000000,"hash":"1dced39f250919efc4aa798daee1efef3adcca054c7483843536c455919ff106"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":18485,"mtime_ns":1785637803204159892,"hash":"834f242f9733612613b7b3fec33dcab61d8fe0885158a5bfa8ebef8e0705dc46"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/datetime_parse.py":{"size":929,"mtime_ns":1782905360000000000,"hash":"7a4eac85768cbeb0ba76f7f478ddadeeacab2498cd9be4070a76e1cfad693cdf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11299,"mtime_ns":1785439224271183303,"hash":"ba898caafbe6c8f4c5729c2521917eeaf92fa3c649626232d326eb255f0c177f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":8319,"mtime_ns":1785202429973819450,"hash":"63ec5922aa1e9bdf8c3b7dfc5b0ccb555535cbf949e32a1055237ba86faaa146"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":5908,"mtime_ns":1785450376207250209,"hash":"eb0ebe1400d6d0f7fd614561986c6f5d2072946e459c90b06761f0754a0a482b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/menu_badge.py":{"size":247,"mtime_ns":1783257567000000000,"hash":"88c31e5ef8cee73327a1a0f36ea7ae0e61fa8f1ae140ad95ed0c0b9c2b4d05f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":23874,"mtime_ns":1785453577889781284,"hash":"346dd41170ff374014149c5b4e0f442e58040200b17dc69b20d05f18fe235a59"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446000000000,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":20802,"mtime_ns":1785451180420705219,"hash":"ae069b93e5dca487543132014dab26c9a57ab6c714c3613d3e8527b589fff282"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/transport_address.py":{"size":2604,"mtime_ns":1782906539000000000,"hash":"6548b4b0c8c1d8096ce96ff1d5b523c67b12300f9a3eac66570b0256478a1120"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447000000000,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169000000000,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196000000000,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930000000000,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930000000000,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594000000000,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":24037,"mtime_ns":1783746967000000000,"hash":"4834348d099b32b70d14e1b56279dbb385f42519646351d8cb220da8c5fe27f1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200000000000,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868000000000,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3984,"mtime_ns":1784993089000000000,"hash":"dd56d9197b4cddc60570bf5eb1851d4a426ab226858beb95bccb33a839471ea5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4639,"mtime_ns":1784993106000000000,"hash":"2640940d1851d60e7ba515d759a0aa06843b764742ae1ea2fabb95b6a16136f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":50167,"mtime_ns":1785473904076135989,"hash":"62aa40e704008af56df7fd19b786de94d291218976106b1c59ee2b2332639b5b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3610,"mtime_ns":1785592530823872489,"hash":"9c5f871f6c22e837bfee2fc52af6a06588f6f509441485054ec2a138bc91211e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5617,"mtime_ns":1784993093000000000,"hash":"514ea42e366fff44f1becbde6b5bfa219a224517e47dcdec25c8cf803a3ec0b5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938000000000,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127000000000,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614000000000,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400000000000,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632000000000,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619000000000,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092000000000,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268000000000,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818000000000,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142000000000,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":1735,"mtime_ns":1784957286000000000,"hash":"7ab4f5c5a28b0af2c8ddfc91bbc425a9fc5246956afdfd29ae4ca0af32d73cb6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10601,"mtime_ns":1784947515000000000,"hash":"a98e229da05d7245b06701f3a166dd30f15a28d117b4389ecb8f03bb6d9d0851"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":7694,"mtime_ns":1783849439000000000,"hash":"7bb0a6d4dfdb1ec11e72e971873791b8e188939e7c6b7328a0a2f4f8986c9d1c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506000000000,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":15310,"mtime_ns":1783777749000000000,"hash":"c506eb84c104ce63b98cde5b16644f16ddcf4e3aa335089bedcb4c267d21fc0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":47560,"mtime_ns":1783213204000000000,"hash":"53a61d4da0cd2e2d0bac74abcca13de3f3d506b603453811d8f1cd53fa50b358"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276000000000,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py":{"size":31821,"mtime_ns":1785452761834196393,"hash":"b98fd44f3f42b76ef8ec0797f6842c68f8ccee56368969f5152d86ccafa69167"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py":{"size":6108,"mtime_ns":1783258109000000000,"hash":"aec342e2370f584c5ed0024bb08a8346c70e1827c09ab456b4b06e9dfc817d8c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_ocr_service.py":{"size":11166,"mtime_ns":1784036700000000000,"hash":"6f233150e253813a7c9da30e6e5d6046fdea01baa67c2589a332fe511ab795f9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6707,"mtime_ns":1783845044000000000,"hash":"34f3d1d723890e294aac765a66d7e86ca87f4288f42cec674bb9151de091fe22"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":43616,"mtime_ns":1785447059067456413,"hash":"68481c4cfc56bb9b948f45a84f6ab7e467b0a00199f32bfd388dcd4c0d9eb3fc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460000000000,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450000000000,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248000000000,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23307,"mtime_ns":1783761151000000000,"hash":"0c7aa346d9879347d6a98c435fadc47873907ca0774147b69acf0d392e00e58b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22641,"mtime_ns":1783760938000000000,"hash":"a4a9377a8243e30dd7d6a8a175c68525009465fdebdeb01230849156dd8b59f4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213000000000,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":5592,"mtime_ns":1783858473000000000,"hash":"04c2cd67a7ec8190aa7a9db717a722cd347a52279ac3ef5bd284777f0698a904"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930000000000,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992000000000,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067000000000,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350000000000,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095000000000,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_cert_expiry.py":{"size":711,"mtime_ns":1783208067000000000,"hash":"7c02dbf83fad89c7da757965b545bf77f37792edd0d01d3ed320349b0b60a50b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127000000000,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396000000000,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":2363,"mtime_ns":1783745556000000000,"hash":"e8b487a9bb4072356cae7b1b38496c441f9a1534d6807798448e6de97073d669"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830000000000,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127000000000,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930000000000,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517000000000,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510000000000,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/compare_dict_snapshots.py":{"size":11072,"mtime_ns":1783860128000000000,"hash":"cfc98cc72c5e387317cfa0a7670c47067fffe8f2e540d5cd580ee459e173e4ef"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410000000000,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_data.py":{"size":32783,"mtime_ns":1785455807105877935,"hash":"16751fcd542e209535216a0516d78b62eecb81732d7fe0f9ec051fdf811e93b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_bx_menu_names.sql":{"size":454,"mtime_ns":1783254856000000000,"hash":"d40ab4c556ab285498f4689c21736832deddc754a9a2b7d806e870ccb39fc9ae"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_clue.py":{"size":18423,"mtime_ns":1785455807106788561,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36352,"mtime_ns":1785469153230627041,"hash":"b78319ae19a0089684e1ffe1993a1b62be2d687ab65a3e69da423247e0d4d4d0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1785455807108557895,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1785455807109188438,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1785455807109946855,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":14973,"mtime_ns":1785457303643810528,"hash":"83b693cbc1a590f7a3cd6af2387e638f28474c230fc6f4c0a2813f343d35d887"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":16785,"mtime_ns":1785462269008382807,"hash":"35d9a064be6f0ac00b6b2162d77d710a2c4f108824eb78425de2341d576cf7fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1785455807110995231,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":23401,"mtime_ns":1785468795797340265,"hash":"f2d9da1743e3997bf7361d39ff66eab588d7dd55d2114dc9cf6796f4f697a9c3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1785455807112164732,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_doc_reminder_menu_group.sql":{"size":1562,"mtime_ns":1783256051000000000,"hash":"82a0ce8c5293f5051967633c1c2e0a1dc60e1fc7c97919c9e0866246bbcbe3d1"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_menu_groups.sql":{"size":6367,"mtime_ns":1783256049000000000,"hash":"5f6964d1ea2712d3d72c8f43f08c16597d85fe79f3f54c8be99962090d6c2b67"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_delivery_slip_template.sql":{"size":217,"mtime_ns":1783231586000000000,"hash":"e05e3fe7255e6c8a88aceb1aa53d743a4888a34c9fbaa4449c1cb8a275744d68"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_product_legal_use_cert_url.sql":{"size":1180,"mtime_ns":1783253793000000000,"hash":"01105ec581050477087d9bf65528cfe77ce0026d0fb682cba8014c4cdb046db7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_slip_template.sql":{"size":191,"mtime_ns":1783219958000000000,"hash":"e2a17c3df7be5cc0436ef979a48de81eecbe99c03f43662f4b0954a09dfa1305"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no.sql":{"size":203,"mtime_ns":1783240340000000000,"hash":"de9b3c8e1617b9c345b2d4005e4a627f10ded089db89d35f0b389b333b840c08"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_no_format.sql":{"size":571,"mtime_ns":1783241697000000000,"hash":"61fc58ebda64c5d6be6bfd374dda99c7134e38dc89031527f71916625c4e36db"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_subpack_slip_template.sql":{"size":215,"mtime_ns":1783238744000000000,"hash":"24cf12e21f9f61f49c38e654c0ca655f56a21e5e2364e4c2ca4547dad583272e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_users.py":{"size":28602,"mtime_ns":1785455807113727900,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1785465354405875664,"hash":"54a1bf95512c0a8b5feeb518ea3af76983bb1b0a3ba645898b07debdb2cc52e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260711_hide_vehicle_urea_menus.sql":{"size":269,"mtime_ns":1783760394000000000,"hash":"a5f66647cdb4f0f403689b47b804f8099d7d710753823ef3ddc5e7a5a9ca4ca8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_add_finance_dept.sql":{"size":1697,"mtime_ns":1783855927000000000,"hash":"4ce457089ead5c063ae8e1a6d6553416deb43c54a7edddb574ee2572390aba99"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_affiliation.sql":{"size":753,"mtime_ns":1783845019000000000,"hash":"6d450d264921f43c4e74ee4a2bcfc8335d16f77d9e0413267389741a92bf4eb5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_pl_personnel_type.sql":{"size":1662,"mtime_ns":1783843576000000000,"hash":"24fcd156f97e2bdf2bd158beb5358fe7159874783a84716c6c18d2565cc8ac1a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260712_reset_sys_dept.sql":{"size":4517,"mtime_ns":1783855538000000000,"hash":"3795d6127a4dcf55d406be0fe673b8a83655723fe1f07b855e6fe45823d489fa"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260713_pl_personnel_cert_split.sql":{"size":3436,"mtime_ns":1783946793000000000,"hash":"ce61899ec7e13f41de08dbc923dd1ff2a1a976603d13c8f09aa6fd5be9c914a2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260714_pl_ocr_usage_month.sql":{"size":1270,"mtime_ns":1784032423000000000,"hash":"d7018a4e5be9760846731440be98e53584d8e1461fc4ea54a0c8db61c666e7fe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter.sql":{"size":11104,"mtime_ns":1784122573000000000,"hash":"548dab479fcde4bf1628ca2093fd7840720473a774a5289b55bfd4f46b902153"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260715_crm_price_letter_bill_price.sql":{"size":901,"mtime_ns":1784122547000000000,"hash":"11a4eb6f3b4d89c1a5141bd9a85e931517984b77ac213f5842dc590f928fe1cf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260719_pl_inbound_outbound_order.sql":{"size":10843,"mtime_ns":1784427911426172052,"hash":"baab6333d8e0865e72a9c474eb642bd5b166f9d70a6db5825d315574f66df069"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231000000000,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279000000000,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163000000000,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/refresh_business_role_menus.py":{"size":3812,"mtime_ns":1783858483000000000,"hash":"b2c76109936791e1f624e239b24832237fa0256b38b98578e39825ac215fb166"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/renumber_crm_product_no.py":{"size":9071,"mtime_ns":1785455807114125233,"hash":"320c63801100ea8e9fb62abfb44b3487139377e293310593a877ab2d06e9d2e3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102000000000,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/seed_sys_menu.sql":{"size":82807,"mtime_ns":1784948075068625581,"hash":"b712bc6d4b5a248a26706137f601e26d81bdb7ffdae016ff818a77155afe15a8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/setup_business_roles.py":{"size":14256,"mtime_ns":1783858477000000000,"hash":"ac12df2cf75826931c85f4deb3ae28614e31ea825d0beb3cf351a8d4f5cb1071"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/test_aliyun_driving_license_ocr.py":{"size":5130,"mtime_ns":1784032210000000000,"hash":"13d43c9144c3795b8870fbd900ed14f97ae22ee043e2c265a5151525666abebe"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/verify_web_menu_codes.py":{"size":2535,"mtime_ns":1783858485000000000,"hash":"16c9c072b5b80fb309d56823963ebd0dd1f437a3f74d7f82711dd8a7c2de86d2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355000000000,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/wuzilong/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661000000000,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048000000000,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647000000000,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611000000000,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_dibang_plan_quantity.py":{"size":4258,"mtime_ns":1783777759000000000,"hash":"6af8eb3c1f6c7ad34cd62f1e82e9c6b96737ffd48ba74dda7c5f888c55dd11cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_personnel_cert_required.py":{"size":2829,"mtime_ns":1783946968000000000,"hash":"e89b3aa798794dc77085af5c4b880cdddcd2c0590c3cc3414f8a5389fd5f6d93"},"/Users/wuzilong/work/00code/shanxia2.0/backend/venv.bak.broken/bin/Activate.ps1":{"size":8593,"mtime_ns":1780108930000000000,"hash":"ed2ea10761f2798e8980084d754284d3fcb94f1284ae7085c35c16108fe24846"},"/Users/wuzilong/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356000000000,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/wuzilong/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581000000000,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_enrichment.py":{"size":2097,"mtime_ns":1784450322000000000,"hash":"0f0fba3a24b2eeda1af4c30180306eca8da5f3dd1807f2e7591f4c46548440c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3527,"mtime_ns":1785446258255101137,"hash":"fc53fd735e09b39e7cfe085ca6756f87396b6954f7057fde2bfca39524c34276"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_tripartite_cert_gates.py":{"size":2003,"mtime_ns":1784947499000000000,"hash":"312091d1017c2f22195a9317cd6f39c880cd5aa6b27acaf343181319f045ffee"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_carrier_eligible.py":{"size":689,"mtime_ns":1784947707000000000,"hash":"a3093ae31166d40d7836abb3575c0d4d50ff9e9bf23fee8e7a291afdec39fedd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/paste_recognize.py":{"size":1845,"mtime_ns":1784955105000000000,"hash":"2a1d015e85b6d9e25d54d94940627a713f4c6e7422dff350c20c4036176d11dc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_paste_recognize_service.py":{"size":9669,"mtime_ns":1784955109000000000,"hash":"2d4e38178168b11f3aeea64a4d0ab4ae60c9a93ad9d7d7568456374af65d7c57"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration_20260725_pl_tripartite_menus.sql":{"size":2113,"mtime_ns":1784948072087970834,"hash":"c4897f7cff3c22535726f105d1f2e543eb551f6543e8b256ced85ae2a38ee683"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/invoice.py":{"size":5868,"mtime_ns":1784991682000000000,"hash":"65eced0eea3c4f9567842be545d2eb042c24398d5ff5eeda2aff693fcff06ff2"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/bx/invoice.py":{"size":1896,"mtime_ns":1784982228000000000,"hash":"909460b2883e85110e15a56d5755748e1bcb3e26dffac89684440813788e8668"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice.py":{"size":14356,"mtime_ns":1784991670000000000,"hash":"fb3fac6667d415b032880fde5ef3413dfac150686b738d6b644ea07d0fc96412"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/invoice_ledger.py":{"size":10778,"mtime_ns":1784980394000000000,"hash":"2b67dc7e5d7280235dbe594bc6a984747ceb3415a527c78516cd60ef3ebccf1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/crm_supplier_hazard.py":{"size":3425,"mtime_ns":1784998230000000000,"hash":"2365e02c6f2584dd6d18e1ad3c8d3075096777b244cc1430ef913254c61a9442"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_bx_invoice_ledger.py":{"size":1427,"mtime_ns":1784980394000000000,"hash":"9fc702e7becd491b05b730b711ea911f393f2d15509bc5f03f4e70edf7770a9b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_supplier_hazard.py":{"size":855,"mtime_ns":1784996182000000000,"hash":"ce8bd619b1a6dc746541a57eccc095d19ccde3bdb88341995631e15fcfb14bca"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_pl_plan_create_date.sql":{"size":536,"mtime_ns":1785140686875543544,"hash":"0694b0b031a6461d8a8940f7403739a8d20fd018403a02a8f1e0e8bf2bc1490f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_create_date.py":{"size":299,"mtime_ns":1785140895170402200,"hash":"7a05f3fcc2d9a36f08b0801f6fbf6ee4fe58982d9212d7a10a70b8b4d41b6f85"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_crm_product_brand_alias.sql":{"size":4594,"mtime_ns":1785160650030737687,"hash":"f9f6ea6ca8e31cf5622a31f8303fe81174769b7d094645a88dccfcd6484b9cc4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_brand_archive.py":{"size":3334,"mtime_ns":1785453570763074999,"hash":"feca7ad16664603f04ee7fa38f03187ecfb70978cc41fcdb47d3fbfb54a11fbc"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_inventory_service.py":{"size":7058,"mtime_ns":1785453321817830521,"hash":"a13cd5ea34dabe91b4663551824c3da9fd2a64ac3fcbc46b2b099644f308b457"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260727_split_brand_from_product_name.py":{"size":5120,"mtime_ns":1785202591782265408,"hash":"d9d9b949cc5f275764b7ea771616141084a0c7cd256dd3262bf532cf4ac0f20f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_brand_archive.py":{"size":2440,"mtime_ns":1785453323711185768,"hash":"2a704d8278c46f510fa020cd9aed4ea26fd978262d7fe728287bcfe5726798e9"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_plan_plan_date_nullable.sql":{"size":223,"mtime_ns":1785439209757662121,"hash":"50a633398cc1c8288c8b5fa221885272ca963c4b777b70102c96632f2d51047a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_feedback_brand_qty.py":{"size":9813,"mtime_ns":1785452749855419713,"hash":"c67d06fc7ac5cc9b3be0c2005f30a4914ca97c27cd5a7c80e7814382cb05c82d"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_pl_feedback_brand_qty.sql":{"size":4927,"mtime_ns":1785445506581710120,"hash":"618b647158c133824ead60382d2b6e73713ea32a7b2224efedea431e071cc89a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_feedback_brand_qty.py":{"size":3424,"mtime_ns":1785452788497663858,"hash":"1fe2a5c0b1968f864ef22a436b0e13a697977ef09a71c6e8bfda46da25825f90"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_product_display.py":{"size":3590,"mtime_ns":1785451173102957680,"hash":"728e1d79035875ac350201c943241493f04006a2e1f71d7e3e41571eeac721e5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_customer_license_urls.py":{"size":7789,"mtime_ns":1785467213374029636,"hash":"a0faaa83477187d8b4a9299d1b170f5ea2c5ca3b450fb4437bf1dc30ab1b5b1b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/backfill_crm_contract_attachment_urls.py":{"size":9795,"mtime_ns":1785469147228035015,"hash":"6331fa977cbb794c3ee9cb072692c63b05f23f071ab8df1d0b8368455af3b82c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260731_bx_reimburse_invoice_attachment_id.sql":{"size":784,"mtime_ns":1785473095766881076,"hash":"702c6845b0b936d4a5a06918fcebefd71b38ca4b2dcd7e51ee45af19c77407b6"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote_approver_setting.py":{"size":3632,"mtime_ns":1785560604338687232,"hash":"7442687a3dde4a0a354064c3fef7503d37c9ce3f1991873e64befd2d1812ba4a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_quote_approver_setting.py":{"size":1015,"mtime_ns":1785560055190832342,"hash":"2a7e91833de33ed92ac8e9157746f15fd7a9e7c5f25bf043dfb0dd7c77859715"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote_approver_setting.py":{"size":291,"mtime_ns":1785560601528774704,"hash":"e978cab24ee46f23b7432bb6f411e760f2d8d782a924efe811608c2200fcba0a"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_quote_approver_setting.sql":{"size":2117,"mtime_ns":1785560449173091996,"hash":"66c92fbf3031539484e241934c14fee379a70b1b179a8b8345c5ae70c8498f14"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approver_setting.py":{"size":2875,"mtime_ns":1785561463337293690,"hash":"7c3aeed13e66f67159220b323298b414a9d1b1f9ca6b679dca31532be86a132e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/contract_approver_setting.py":{"size":294,"mtime_ns":1785561469090499071,"hash":"fca8a7cb3a75c82e9c3395f2471e20dfcdc469a8fd299c9c6ce5e79576a6c3fb"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260801_crm_contract_approver_setting.sql":{"size":1903,"mtime_ns":1785561454940491268,"hash":"f81470b97da71283b9d3defc81fd177cc2fea1dbd487febaebf7a8f24a73c71f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_20260802_pl_vehicle_personnel_photo_urls.sql":{"size":468,"mtime_ns":1785637173564154921,"hash":"852680d19f6b71def29908a718ae92d9169a025e9d78808b9f8d000bdc61fb52"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_vehicle_personnel_photo_schema.py":{"size":1231,"mtime_ns":1785637623899998875,"hash":"e4c64e35446196f1de7ba0e719be054d019ec8b075f5ea8c128b8a60c59695aa"}} \ No newline at end of file diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 92db37446..f68c1cd32 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -63,12 +63,12 @@
-