diff --git a/backend/app.pid b/backend/app.pid deleted file mode 100644 index 5515dbd15..000000000 --- a/backend/app.pid +++ /dev/null @@ -1 +0,0 @@ -7389 diff --git a/backend/app/api/pl/public_transport.py b/backend/app/api/pl/public_transport.py index 405ebd5d7..fb7c10e83 100644 --- a/backend/app/api/pl/public_transport.py +++ b/backend/app/api/pl/public_transport.py @@ -170,6 +170,7 @@ def _build_public_page(db: Session, transport: PlTransport) -> PublicTransportPa products=product_reads, feedback_remark=transport.feedback_remark, feedback_images=_parse_feedback_images(transport.feedback_images), + feedback_qty=transport.feedback_qty, feedback_time=transport.feedback_time, plan_voided=( (plan is not None and plan.follow_status == "cancelled") @@ -202,6 +203,9 @@ def save_public_feedback( if payload.feedback_remark is not None: transport.feedback_remark = payload.feedback_remark + if payload.feedback_qty is not None: + transport.feedback_qty = payload.feedback_qty + transport.feedback_time = datetime.now() db.commit() return success_response({"success": True, "message": "保存成功"}) diff --git a/backend/app/schemas/pl/transport.py b/backend/app/schemas/pl/transport.py index 6e1c52d5b..8e500ef26 100644 --- a/backend/app/schemas/pl/transport.py +++ b/backend/app/schemas/pl/transport.py @@ -191,6 +191,7 @@ class TransportFeedback(BaseModel): class PublicTransportFeedback(BaseModel): feedback_images: Optional[list[str]] = Field(default=None, alias="feedbackImages") feedback_remark: Optional[str] = Field(default=None, alias="feedbackRemark") + feedback_qty: Optional[Decimal] = Field(default=None, alias="feedbackQty", ge=0, description="回传数量") model_config = {"populate_by_name": True} @@ -235,6 +236,7 @@ class PublicTransportPageRead(BaseModel): products: list[PublicTransportPlanProductRead] = Field(default_factory=list) feedback_remark: Optional[str] = Field(default=None, alias="feedbackRemark") feedback_images: list[str] = Field(default_factory=list, alias="feedbackImages") + feedback_qty: Optional[Decimal] = Field(default=None, alias="feedbackQty", description="回传数量") feedback_time: Optional[datetime] = Field(default=None, alias="feedbackTime") plan_voided: bool = Field(default=False, alias="planVoided") model_config = {"populate_by_name": True} diff --git a/backend/app/services/pl_io_order_service.py b/backend/app/services/pl_io_order_service.py index e0dedb9e2..647eb1b7c 100644 --- a/backend/app/services/pl_io_order_service.py +++ b/backend/app/services/pl_io_order_service.py @@ -12,6 +12,7 @@ from sqlalchemy.orm import Session from app.core.config import settings from app.core.utils import generate_uuid +from app.models.crm_models import CrmProduct from app.models.db_models import DbInboundOutbound from app.models.pl_models import ( PlInboundOrder, @@ -391,6 +392,7 @@ def merge_plan_product_into_item( product: Optional[PlPlanProduct], *, unit_map: dict[str, str], + crm_product_no: Optional[str] = None, ) -> None: if not product: item.setdefault("productNo", None) @@ -398,7 +400,13 @@ def merge_plan_product_into_item( item.setdefault("remark", None) item["unitLabel"] = resolve_unit_label(unit_map, item.get("unit")) return - item["productNo"] = product.product_no + # 优先 CRM 产品编码;计划冗余 product_no 可能被误存为 product_id + product_id = (product.product_id or item.get("productId") or "").strip() + plan_no = (product.product_no or "").strip() + resolved_no = (crm_product_no or "").strip() + if not resolved_no and plan_no and plan_no != product_id: + resolved_no = plan_no + item["productNo"] = resolved_no or None item["packageSpec"] = product.package_spec item["remark"] = (product.remark or "").strip() or None if not item.get("specification") and product.model: @@ -457,9 +465,40 @@ def enrich_io_order_dict( ) products_by_id = {r.id: r for r in rows} + crm_ids = { + (pp.product_id or "").strip() + for pp in products_by_id.values() + if (pp.product_id or "").strip() + } + for it in raw_items: + pid = (it.get("productId") or "").strip() + if pid: + crm_ids.add(pid) + crm_no_by_id: dict[str, str] = {} + if crm_ids: + crm_rows = ( + db.query(CrmProduct.id, CrmProduct.product_no) + .filter( + CrmProduct.id.in_(list(crm_ids)), + CrmProduct.tenant_no == tenant_no, + CrmProduct.del_flag == 0, + ) + .all() + ) + for row in crm_rows: + no = (row.product_no or "").strip() + if no: + crm_no_by_id[row.id] = no + for it in raw_items: pp = products_by_id.get(it.get("planProductId") or "") - merge_plan_product_into_item(it, pp, unit_map=unit_map) + product_id = ((pp.product_id if pp else None) or it.get("productId") or "").strip() + merge_plan_product_into_item( + it, + pp, + unit_map=unit_map, + crm_product_no=crm_no_by_id.get(product_id), + ) if public_unit_as_label: it["unit"] = it.get("unitLabel") or resolve_unit_label(unit_map, it.get("unit")) diff --git a/backend/graphify-out/.graphify_labels.json b/backend/graphify-out/.graphify_labels.json index 931675285..25603ad25 100644 --- a/backend/graphify-out/.graphify_labels.json +++ b/backend/graphify-out/.graphify_labels.json @@ -143,7 +143,6 @@ "141": "Community 141", "142": "Community 142", "143": "Community 143", - "144": "Community 144", "145": "Community 145", "146": "Community 146", "147": "Community 147", @@ -162,8 +161,6 @@ "163": "Community 163", "165": "Community 165", "167": "Community 167", - "168": "Community 168", - "169": "Community 169", "170": "Community 170", "171": "Community 171", "172": "Community 172", diff --git a/backend/graphify-out/.graphify_root b/backend/graphify-out/.graphify_root index 98cd9e711..b2eb43f40 100644 --- a/backend/graphify-out/.graphify_root +++ b/backend/graphify-out/.graphify_root @@ -1 +1 @@ -backend \ No newline at end of file +/Users/wuzilong/work/00code/shanxia2.0/backend \ No newline at end of file diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 876ec9fb5..ef0902eb5 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ -# Graph Report - backend (2026-07-19) +# Graph Report - backend (2026-07-20) ## Corpus Check -- 300 files · ~210,411 words +- 300 files · ~210,557 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 3969 nodes · 14567 edges · 170 communities (154 shown, 16 thin omitted) -- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 335 edges (avg confidence: 0.54) +- 3969 nodes · 14570 edges · 167 communities (151 shown, 16 thin omitted) +- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 336 edges (avg confidence: 0.54) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `aa5fbe77` +- Built from commit: `aff71d29` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -148,7 +148,6 @@ - [[_COMMUNITY_Community 141|Community 141]] - [[_COMMUNITY_Community 142|Community 142]] - [[_COMMUNITY_Community 143|Community 143]] -- [[_COMMUNITY_Community 144|Community 144]] - [[_COMMUNITY_Community 145|Community 145]] - [[_COMMUNITY_Community 146|Community 146]] - [[_COMMUNITY_Community 147|Community 147]] @@ -167,8 +166,6 @@ - [[_COMMUNITY_Community 163|Community 163]] - [[_COMMUNITY_Community 165|Community 165]] - [[_COMMUNITY_Community 167|Community 167]] -- [[_COMMUNITY_Community 168|Community 168]] -- [[_COMMUNITY_Community 169|Community 169]] - [[_COMMUNITY_Community 170|Community 170]] - [[_COMMUNITY_Community 171|Community 171]] - [[_COMMUNITY_Community 172|Community 172]] @@ -202,19 +199,19 @@ ## Import Cycles - None detected. -## Communities (170 total, 16 thin omitted) +## Communities (167 total, 16 thin omitted) ### Community 0 - "Community 0" -Cohesion: 0.03 -Nodes (218): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert() (+210 more) +Cohesion: 0.04 +Nodes (181): clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert(), clue_create(), clue_delete(), clue_detail(), clue_export() (+173 more) ### Community 2 - "Community 2" Cohesion: 0.17 Nodes (11): pool_customer_assign(), pool_customer_claim(), pool_customer_list(), pool_record_detail(), pool_record_list(), PoolAssignBody, PoolClaimBody, PoolCustomerListBody (+3 more) ### Community 3 - "Community 3" -Cohesion: 0.05 -Nodes (71): contact_add(), contact_delete(), contact_update(), customer_create(), customer_delete(), customer_update(), customer_name_exists(), BaseModel (+63 more) +Cohesion: 0.04 +Nodes (78): contact_add(), contact_delete(), contact_update(), customer_create(), customer_delete(), customer_update(), customer_name_exists(), BaseModel (+70 more) ### Community 4 - "Community 4" Cohesion: 0.19 @@ -285,8 +282,8 @@ Cohesion: 0.11 Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, total_pages(), QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more) ### Community 21 - "Community 21" -Cohesion: 0.08 -Nodes (59): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, list_pending_payments(), list_processed_payments(), list_reimburse_offset_records(), offset(), pay() (+51 more) +Cohesion: 0.13 +Nodes (29): approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), get_approval_history(), get_approvals(), get_generated_title() (+21 more) ### Community 22 - "Community 22" Cohesion: 0.07 @@ -302,7 +299,7 @@ Nodes (28): assign_clues(), check_convert(), check_duplicate_clue(), convert_clu ### Community 25 - "Community 25" Cohesion: 0.15 -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) +Nodes (24): _append_user_scope_conditions(), apply_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3, 合并多角色数据范围为 dept_ids / user_ids 并集。 (+16 more) ### Community 26 - "Community 26" Cohesion: 0.11 @@ -318,7 +315,7 @@ Nodes (25): apply_dibang_prefill_to_order(), build_io_order_site_url(), create_i ### Community 29 - "Community 29" Cohesion: 0.10 -Nodes (66): register_quote_routes(), accept_quote(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields() (+58 more) +Nodes (64): register_quote_routes(), accept_quote(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields() (+56 more) ### Community 30 - "Community 30" Cohesion: 0.12 @@ -369,44 +366,44 @@ Cohesion: 0.33 Nodes (19): check_python(), create_venv(), ensure_dirs(), ensure_valid_venv(), ensure_venv_and_runtime(), install_dependencies(), is_running(), log_error() (+11 more) ### Community 42 - "Community 42" -Cohesion: 0.10 -Nodes (45): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+37 more) +Cohesion: 0.11 +Nodes (40): advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _fill_offset_amounts(), get_advance() (+32 more) ### Community 43 - "Community 43" Cohesion: 0.18 -Nodes (30): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+22 more) +Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more) ### Community 44 - "Community 44" -Cohesion: 0.18 -Nodes (14): _avatar_url_field(), _build_user_info_payload(), change_current_user_password(), get_current_user_profile(), get_web_auth_menu_codes(), public_quote_share(), Request, Session (+6 more) +Cohesion: 0.09 +Nodes (40): clue_import_template(), customer_dealed(), customer_export(), customer_import_template(), customer_key(), customer_list(), customer_long_time_no_follow(), customer_mine() (+32 more) ### Community 45 - "Community 45" -Cohesion: 0.10 -Nodes (37): 报销模块认证适配:门户 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() (+29 more) +Cohesion: 0.18 +Nodes (20): filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。, allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title() (+12 more) ### Community 46 - "Community 46" 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 48 - "Community 48" -Cohesion: 0.14 -Nodes (35): bind_vehicle_driver(), create_driver(), create_personnel(), delete_carrier(), delete_driver(), delete_personnel(), delete_vehicle(), get_driver() (+27 more) +Cohesion: 0.13 +Nodes (41): approve_carrier(), bind_vehicle_driver(), create_carrier(), create_driver(), create_personnel(), delete_carrier(), delete_driver(), delete_personnel() (+33 more) ### Community 49 - "Community 49" -Cohesion: 0.12 -Nodes (33): _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。, refresh_token(), web_login(), create_access_token() (+25 more) +Cohesion: 0.14 +Nodes (32): _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。, refresh_token(), web_login(), create_access_token() (+24 more) ### Community 50 - "Community 50" Cohesion: 0.16 Nodes (18): get_user_menu_codes(), Session, 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web(), Session (+10 more) ### Community 51 - "Community 51" -Cohesion: 0.21 -Nodes (22): calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product(), list_quote_products() (+14 more) +Cohesion: 0.20 +Nodes (23): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+15 more) ### Community 52 - "Community 52" -Cohesion: 0.20 -Nodes (19): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), list_quote_approvals(), Any, Session (+11 more) +Cohesion: 0.18 +Nodes (20): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), list_quote_approvals(), Any, Session (+12 more) ### Community 53 - "Community 53" Cohesion: 0.17 @@ -425,8 +422,8 @@ 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) ### Community 57 - "Community 57" -Cohesion: 0.13 -Nodes (23): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+15 more) +Cohesion: 0.14 +Nodes (25): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+17 more) ### Community 58 - "Community 58" Cohesion: 0.35 @@ -449,32 +446,32 @@ 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 63 - "Community 63" -Cohesion: 0.19 -Nodes (14): create_expense_item(), delete_expense_item(), get_expense_item(), get_expense_item_tree(), Session, update_expense_item(), get_bx_current_user(), BxExpenseItem (+6 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 64 - "Community 64" -Cohesion: 0.17 -Nodes (26): 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() (+18 more) +Cohesion: 0.15 +Nodes (32): 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() (+24 more) ### Community 65 - "Community 65" -Cohesion: 0.38 -Nodes (10): create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), Session, submit_leave() (+2 more) +Cohesion: 0.14 +Nodes (15): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, current_month_bounds() (+7 more) ### Community 66 - "Community 66" Cohesion: 0.21 Nodes (16): PlCert, PlDocumentReminder, 证件到期提醒表 pl_document_reminder, list_owner_certs(), list_owner_certs_batch(), nearest_expire_date(), _normalize_cert_row(), date (+8 more) ### Community 67 - "Community 67" -Cohesion: 0.08 -Nodes (27): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add(), supplier_info_delete() (+19 more) +Cohesion: 0.12 +Nodes (16): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, supplier_info_add(), supplier_info_delete(), supplier_info_detail() (+8 more) ### Community 68 - "Community 68" -Cohesion: 0.15 -Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import WechatMes, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_ (+1 more) +Cohesion: 0.17 +Nodes (8): 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_, WechatMessageService ### Community 69 - "Community 69" -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) +Cohesion: 0.18 +Nodes (26): advance_issue_stats(), batch_offset(), export_advance_issues(), issue_advance(), list_advance_issues(), list_advance_offset_records(), list_pending_payments(), list_processed_payments() (+18 more) ### Community 70 - "Community 70" Cohesion: 0.20 @@ -497,12 +494,12 @@ Cohesion: 0.21 Nodes (20): _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images(), Session, UploadFile (+12 more) ### Community 75 - "Community 75" -Cohesion: 0.38 -Nodes (9): create_supplier_info(), get_supplier_info(), Session, CRM 供方信息 CRUD — 对照 CrmSupplierInfoServiceImpl.java, Java: deleteWithValidByIds(门户软删), soft_delete_supplier_info(), total_pages(), update_supplier_info() (+1 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 76 - "Community 76" -Cohesion: 0.14 -Nodes (27): approve_carrier(), create_carrier(), get_carrier(), reject_carrier(), update_carrier(), PlCarrier, carrier_to_read(), CarrierAuditReject (+19 more) +Cohesion: 0.17 +Nodes (20): list_vehicles(), PlCarrier, CarrierBase, CarrierCreate, CarrierQualificationBase, DriverBase, DriverCreate, PersonnelBase (+12 more) ### Community 77 - "Community 77" Cohesion: 0.20 @@ -521,8 +518,8 @@ 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 81 - "Community 81" -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) +Cohesion: 0.18 +Nodes (11): Config, decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。 (+3 more) ### Community 82 - "Community 82" Cohesion: 0.36 @@ -530,7 +527,7 @@ Nodes (14): ensure_crm_customer_linked_row_in_scope(), ensure_crm_owner_row_in_s ### Community 83 - "Community 83" Cohesion: 0.24 -Nodes (12): normalize_attachment_csv(), 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)。 (+4 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 84 - "Community 84" Cohesion: 0.22 @@ -553,8 +550,8 @@ Cohesion: 0.40 Nodes (12): create_follow(), _enrich_follow_dict(), get_follow(), list_follows(), list_follows_by_customer(), Any, Session, _row_to_dict() (+4 more) ### Community 90 - "Community 90" -Cohesion: 0.22 -Nodes (13): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+5 more) +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 91 - "Community 91" Cohesion: 0.32 @@ -577,8 +574,8 @@ Cohesion: 0.38 Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时统一排序规则,避免 Illegal mix of collations。, 跨表字符串等值比较(JOIN / WHERE)时统一为 utf8mb4_unicode_ci。, 将列显式设为 utf8mb4_unicode_ci。, unicode_ci() ### Community 96 - "Community 96" -Cohesion: 0.39 -Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more) +Cohesion: 0.11 +Nodes (23): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), create_site(), get_site(), list_sites() (+15 more) ### Community 97 - "Community 97" Cohesion: 0.36 @@ -609,8 +606,8 @@ Cohesion: 0.36 Nodes (10): build_quote_html(), _default_value(), _format_date(), _format_discount(), _format_money(), generate_quote_pdf(), _get_pdf_styles(), Any (+2 more) ### Community 104 - "Community 104" -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) +Cohesion: 0.49 +Nodes (10): apply_pl_scope(), Session, build_menu_badge_counts(), count_document_reminder_expired_pending(), count_freight_approval_pending(), count_freight_disburse_pending(), _count_pending_applies(), count_plan_archive_pending() (+2 more) ### Community 105 - "Community 105" Cohesion: 0.20 @@ -621,8 +618,8 @@ Cohesion: 0.43 Nodes (5): _inject_user_info_after_tenant(), patch_contract_routes(), patch_quote_routes(), patch_route_file(), Path ### Community 107 - "Community 107" -Cohesion: 0.18 -Nodes (20): Settings, BaseSettings, load_runtime_settings(), load_settings_env(), main(), verify_user_menu_codes(), assign_user_roles(), collect_subtree_menu_ids() (+12 more) +Cohesion: 0.12 +Nodes (33): Settings, BaseSettings, load_runtime_settings(), load_settings_env(), main(), verify_user_menu_codes(), apply_renumber(), build_mapping() (+25 more) ### Community 108 - "Community 108" Cohesion: 0.36 @@ -633,20 +630,20 @@ Cohesion: 0.67 Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。 ### Community 111 - "Community 111" -Cohesion: 0.23 -Nodes (14): _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj(), _schedule_persist_log() (+6 more) +Cohesion: 0.08 +Nodes (29): category_add(), category_delete(), category_tree(), category_update(), product_add(), product_delete(), product_detail(), product_export() (+21 more) ### Community 112 - "Community 112" -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) +Cohesion: 0.16 +Nodes (15): 报销模块认证适配:门户 JWT 用户 → bx 业务上下文。, assert_row_in_data_scope(), BxCrudService, Any, Session, 报销模块 Service 基类 — 租户隔离 + UUID + 软删除。, apply_bx_scope(), assert_bx_attachment_biz_in_scope() (+7 more) ### Community 113 - "Community 113" Cohesion: 0.13 Nodes (31): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes() (+23 more) ### Community 114 - "Community 114" -Cohesion: 0.40 -Nodes (11): _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics(), get_clue_source_statistics(), get_clue_trend_statistics(), Any (+3 more) +Cohesion: 0.36 +Nodes (12): _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics(), get_clue_source_statistics(), get_clue_trend_statistics(), Any (+4 more) ### Community 115 - "Community 115" Cohesion: 0.38 @@ -665,8 +662,8 @@ 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) ### Community 124 - "Community 124" -Cohesion: 0.15 -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) +Cohesion: 0.06 +Nodes (57): operlog_detail(), operlog_list(), Session, 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info(), _claims_from_auth(), _format_body_bytes(), _persist_log() (+49 more) ### Community 125 - "Community 125" Cohesion: 0.12 @@ -685,8 +682,8 @@ 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 136 - "Community 136" -Cohesion: 0.27 -Nodes (11): customer_dealed(), customer_export(), customer_key(), customer_list(), customer_long_time_no_follow(), customer_mine(), customer_to_follow(), customer_week_new() (+3 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 137 - "Community 137" Cohesion: 0.32 @@ -709,16 +706,12 @@ Cohesion: 0.20 Nodes (15): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+7 more) ### Community 142 - "Community 142" -Cohesion: 0.40 -Nodes (3): Any, 供 get_tenant_no 等门户工具使用。, 与门户 JWT / apply_data_scope 所需的 user_info 字段对齐。 +Cohesion: 0.33 +Nodes (11): create_vehicle(), get_vehicle(), update_vehicle(), _vehicle_to_detail(), _vehicle_to_read(), PlVehicle, VehicleBase, VehicleCreate (+3 more) ### Community 143 - "Community 143" -Cohesion: 0.11 -Nodes (34): create_vehicle(), get_vehicle(), list_vehicles(), update_vehicle(), _vehicle_to_detail(), _vehicle_to_read(), PlVehicle, PlVehiclePersonnel (+26 more) - -### Community 144 - "Community 144" -Cohesion: 0.31 -Nodes (13): apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main(), product_id_sort_key(), Engine (+5 more) +Cohesion: 0.14 +Nodes (24): PlVehiclePersonnel, 车辆-人员关联表 pl_vehicle_personnel, CertRead, VehiclePersonnelRow, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, SnapshotCertRead, SnapshotPersonnelRow, TransportResourceSnapshot (+16 more) ### Community 145 - "Community 145" Cohesion: 0.23 @@ -761,21 +754,13 @@ Cohesion: 0.15 Nodes (30): create_clue_follow(), delete_clue_follow(), get_clue_follow(), get_follow_statistics(), list_clue_follows(), Any, Session, 更新线索跟进记录,必要时同步线索 next_time (+22 more) ### Community 165 - "Community 165" -Cohesion: 0.09 -Nodes (33): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, StartInstanceBody, publish_version(), SoftDeleteModel, BizAttachment, 数据模型(与 docs/sql/shanxia2.0.sql 全库导出基线对齐的核心系统表) (+25 more) +Cohesion: 0.13 +Nodes (21): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, StartInstanceBody, 流程实例 wf_process_instance, WfNode, WfProcessInstance, WfTask (+13 more) ### Community 167 - "Community 167" Cohesion: 0.47 Nodes (8): compare_data(), item_key(), load_portal_dicts(), load_sx_dicts(), main(), parse_insert_values(), Path, unquote() -### Community 168 - "Community 168" -Cohesion: 0.50 -Nodes (4): ApiRequestLogCRUD, Session, SysApiRequestLog, SysApiRequestLogHis - -### Community 169 - "Community 169" -Cohesion: 0.36 -Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic - ## Knowledge Gaps - **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more) These have ≤1 connection - possible missing edges or undocumented components. @@ -784,17 +769,17 @@ Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `Settings` connect `Community 107` to `Community 4`, `Community 70`, `Community 7`, `Community 105`, `Community 43`, `Community 12`, `Community 140`, `Community 144`, `Community 49`, `Community 145`, `Community 50`, `Community 125`, `Community 126`, `Community 31`?** +- **Why does `Settings` connect `Community 107` to `Community 4`, `Community 70`, `Community 7`, `Community 105`, `Community 43`, `Community 12`, `Community 140`, `Community 81`, `Community 145`, `Community 50`, `Community 125`, `Community 126`, `Community 31`?** _High betweenness centrality (0.150) - this node is a cross-community bridge._ -- **Why does `generate_uuid()` connect `Community 19` to `Community 129`, `Community 5`, `Community 6`, `Community 8`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 143`, `Community 15`, `Community 17`, `Community 147`, `Community 148`, `Community 23`, `Community 24`, `Community 154`, `Community 26`, `Community 28`, `Community 29`, `Community 30`, `Community 159`, `Community 32`, `Community 34`, `Community 37`, `Community 38`, `Community 165`, `Community 42`, `Community 45`, `Community 46`, `Community 48`, `Community 49`, `Community 51`, `Community 52`, `Community 55`, `Community 56`, `Community 57`, `Community 58`, `Community 60`, `Community 64`, `Community 66`, `Community 71`, `Community 73`, `Community 75`, `Community 76`, `Community 77`, `Community 79`, `Community 82`, `Community 86`, `Community 87`, `Community 89`, `Community 90`, `Community 93`, `Community 94`, `Community 96`, `Community 97`, `Community 100`, `Community 107`, `Community 117`, `Community 121`, `Community 125`?** +- **Why does `generate_uuid()` connect `Community 19` to `Community 129`, `Community 5`, `Community 6`, `Community 8`, `Community 10`, `Community 11`, `Community 13`, `Community 142`, `Community 15`, `Community 14`, `Community 17`, `Community 143`, `Community 147`, `Community 148`, `Community 23`, `Community 24`, `Community 154`, `Community 26`, `Community 28`, `Community 29`, `Community 30`, `Community 159`, `Community 32`, `Community 34`, `Community 37`, `Community 38`, `Community 45`, `Community 46`, `Community 48`, `Community 49`, `Community 51`, `Community 52`, `Community 55`, `Community 56`, `Community 57`, `Community 58`, `Community 60`, `Community 64`, `Community 65`, `Community 66`, `Community 71`, `Community 73`, `Community 75`, `Community 77`, `Community 79`, `Community 82`, `Community 86`, `Community 87`, `Community 89`, `Community 90`, `Community 93`, `Community 94`, `Community 96`, `Community 97`, `Community 100`, `Community 107`, `Community 112`, `Community 117`, `Community 121`, `Community 125`?** _High betweenness centrality (0.118) - this node is a cross-community bridge._ -- **Why does `BaseModel` connect `Community 3` to `Community 0`, `Community 2`, `Community 5`, `Community 6`, `Community 136`, `Community 9`, `Community 8`, `Community 11`, `Community 138`, `Community 141`, `Community 14`, `Community 143`, `Community 13`, `Community 10`, `Community 18`, `Community 20`, `Community 21`, `Community 22`, `Community 33`, `Community 36`, `Community 37`, `Community 165`, `Community 39`, `Community 40`, `Community 42`, `Community 46`, `Community 48`, `Community 53`, `Community 57`, `Community 62`, `Community 63`, `Community 67`, `Community 69`, `Community 74`, `Community 76`, `Community 77`, `Community 79`, `Community 98`, `Community 101`, `Community 102`, `Community 113`, `Community 124`?** +- **Why does `BaseModel` connect `Community 3` to `Community 0`, `Community 2`, `Community 5`, `Community 6`, `Community 136`, `Community 9`, `Community 8`, `Community 11`, `Community 138`, `Community 141`, `Community 142`, `Community 143`, `Community 14`, `Community 13`, `Community 18`, `Community 10`, `Community 20`, `Community 21`, `Community 22`, `Community 33`, `Community 36`, `Community 37`, `Community 165`, `Community 39`, `Community 40`, `Community 42`, `Community 44`, `Community 46`, `Community 48`, `Community 53`, `Community 57`, `Community 62`, `Community 63`, `Community 67`, `Community 69`, `Community 74`, `Community 76`, `Community 77`, `Community 79`, `Community 96`, `Community 98`, `Community 101`, `Community 102`, `Community 111`, `Community 113`, `Community 124`?** _High betweenness centrality (0.110) - 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?** _461 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `Community 0` be split into smaller, more focused modules?** - _Cohesion score 0.033470993117010815 - nodes in this community are weakly interconnected._ + _Cohesion score 0.03662814099246737 - nodes in this community are weakly interconnected._ - **Should `Community 3` be split into smaller, more focused modules?** - _Cohesion score 0.04873949579831933 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.04371201496026181 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/026b9635a13b1d59fb76949997b3ac8691ae30e33f576e287a8f86329980b74f.json b/backend/graphify-out/cache/ast/v0.9.4/026b9635a13b1d59fb76949997b3ac8691ae30e33f576e287a8f86329980b74f.json new file mode 100644 index 000000000..c0141b7c2 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/026b9635a13b1d59fb76949997b3ac8691ae30e33f576e287a8f86329980b74f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "label": "transport.py", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "label": "TransportBase", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L17"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportcreate", "label": "TransportCreate", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrange", "label": "TransportArrange", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportinventorylinkread", "label": "TransportInventoryLinkRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L74"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportsitelinkread", "label": "TransportSiteLinkRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportupdate", "label": "TransportUpdate", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "label": "TransportRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L122"}, {"id": "planresourcesnapshotmixin", "label": "PlanResourceSnapshotMixin", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportioorderbrief", "label": "TransportIoOrderBrief", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L141"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrangeresult", "label": "TransportArrangeResult", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_planarrangeinforead", "label": "PlanArrangeInfoRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L162"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportwithplans", "label": "TransportWithPlans", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L173"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportfeedback", "label": "TransportFeedback", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L182"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportfeedback", "label": "PublicTransportFeedback", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L191"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportplanproductread", "label": "PublicTransportPlanProductRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L198"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpersonnelread", "label": "PublicTransportPersonnelRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L208"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpageread", "label": "PublicTransportPageRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L215"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportsitepageread", "label": "PublicTransportSitePageRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L245"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalsubmit", "label": "ApprovalSubmit", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L276"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrequest", "label": "ApprovalRequest", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L281"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrecordread", "label": "ApprovalRecordRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L287"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistquery", "label": "TransportListQuery", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L306"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistresponse", "label": "TransportListResponse", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L318"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "app_schemas_pl_datetime_parse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "app_schemas_pl_resource_snapshot", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportcreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportcreate", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrange", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L46", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrange", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L46", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportinventorylinkread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportinventorylinkread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportsitelinkread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportsitelinkread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L98", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L98", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "target": "planresourcesnapshotmixin", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportioorderbrief", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L141", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportioorderbrief", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L141", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrangeresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrangeresult", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_planarrangeinforead", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L162", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_planarrangeinforead", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L162", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportwithplans", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportwithplans", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L182", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportfeedback", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L182", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportfeedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportfeedback", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportplanproductread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L198", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportplanproductread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L198", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpersonnelread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpersonnelread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpageread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L215", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpageread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L215", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportsitepageread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportsitepageread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalsubmit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalsubmit", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrequest", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrecordread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L287", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrecordread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L287", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistquery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L306", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistquery", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L306", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistresponse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L318", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistresponse", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "app/schemas/pl/transport.py", "source_location": "L318", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrecordread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalrequest", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_approvalsubmit", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_planarrangeinforead", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportfeedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpageread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportpersonnelread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportplanproductread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportsitepageread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrange", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportarrangeresult", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportbase", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportcreate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportfeedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportinventorylinkread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportioorderbrief", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistquery", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportlistresponse", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportsitelinkread", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportupdate", "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportwithplans"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/0776250930d0ffe6ce078c3fb6d9b46e5ee66a3404c1ec4081487331a5262659.json b/backend/graphify-out/cache/ast/v0.9.4/0776250930d0ffe6ce078c3fb6d9b46e5ee66a3404c1ec4081487331a5262659.json new file mode 100644 index 000000000..0eea884b5 --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/0776250930d0ffe6ce078c3fb6d9b46e5ee66a3404c1ec4081487331a5262659.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "label": "public_transport.py", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "label": "_resolve_unit_label()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "label": "_get_transport_by_token()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L40"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "pltransport", "label": "PlTransport", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "label": "_parse_feedback_images()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L54"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "label": "_format_plan_date()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "label": "_resolve_other_personnel()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L76"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "publictransportpersonnelread", "label": "PublicTransportPersonnelRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "label": "_build_public_page()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L105"}, {"id": "publictransportpageread", "label": "PublicTransportPageRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "label": "get_public_transport()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L183"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "label": "save_public_feedback()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L190"}, {"id": "publictransportfeedback", "label": "PublicTransportFeedback", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_file_size", "label": "_format_file_size()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L214"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "label": "upload_public_attachment()", "file_type": "code", "source_file": "app/api/pl/public_transport.py", "source_location": "L223"}, {"id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_core_storage", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_core_attachment_biz", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_crud", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_schemas_pl_resource_snapshot", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_schemas_pl_transport", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "target": "pltransport", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "target": "pltransport", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "target": "plplan", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "target": "publictransportpersonnelread", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "pltransport", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "publictransportpageread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L183", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L183", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "target": "publictransportfeedback", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L214", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "target": "uploadfile", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "target": "publictransportpersonnelread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L141", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "publictransportpageread", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L172", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L185", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L230", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_file_size", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/api/pl/public_transport.py", "source_location": "L265", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L34", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L37", "receiver": "unit_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L42", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L42", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "callee": "PlTransport", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L42"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L50", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "loads", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L58", "receiver": "json"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L59"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "TypeError", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L61"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L63", "receiver": "part"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "split", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L63", "receiver": "raw"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L63", "receiver": "part"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "callee": "datetime", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L69"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L70", "receiver": "value"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "callee": "date", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L71"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L72", "receiver": "value"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "parse_resource_snapshot", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L78", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L82", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L83", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L86", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L87", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L95", "receiver": "rows"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L107", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L107", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L107", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "PlPlanTransport", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L107"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L112", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L119", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L119", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L119"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L125", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L125", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "PlPlanProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L125"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L127", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "asc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L127", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "CRM_PRODUCT_UNIT", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L134"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "load_dict_label_maps", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L132", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "CRM_PRODUCT_UNIT", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L133"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "append", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L136", "receiver": "product_reads"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "PublicTransportPlanProductRead", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L137", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L143", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L186", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "callee": "model_dump", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L186", "receiver": "page"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L198", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "callee": "dumps", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L201", "receiver": "json"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L209", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L210", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L211", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L232", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L234", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "resolve_upload_folder", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L237", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "read", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L238", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "upload_file", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L239", "receiver": "storage"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "rstrip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L240", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "startswith", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L241", "receiver": "full_url"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "create_oss", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L246", "receiver": "oss_svc"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "lstrip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L251", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "splitext", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L251", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L258", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "success_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L259", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L270", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "error_response", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L271", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment", "callee": "exc", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py", "source_location": "L271"}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_build_public_page", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_file_size", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_format_plan_date", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_public_transport", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_get_transport_by_token", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_parse_feedback_images", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_other_personnel", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_resolve_unit_label", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_save_public_feedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_public_transport_upload_public_attachment"]} \ No newline at end of file diff --git a/backend/graphify-out/cache/ast/v0.9.4/1126f9a852abb77234212b85c26d382f4e691bcf22c0d2a4d7815c6da16c3506.json b/backend/graphify-out/cache/ast/v0.9.4/1126f9a852abb77234212b85c26d382f4e691bcf22c0d2a4d7815c6da16c3506.json new file mode 100644 index 000000000..86cdb17ae --- /dev/null +++ b/backend/graphify-out/cache/ast/v0.9.4/1126f9a852abb77234212b85c26d382f4e691bcf22c0d2a4d7815c6da16c3506.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "label": "pl_io_order_service.py", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_ioordercreateresult", "label": "IoOrderCreateResult", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "label": "build_io_order_site_url()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L44"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "label": "_normalize_plan_date()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L50"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "label": "_next_order_no()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L61"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "label": "_dibang_qty_by_plan_product()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L79"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "label": "create_io_order_for_transport()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "pltransport", "label": "PlTransport", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "label": "apply_dibang_prefill_to_order()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L193"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "label": "void_io_orders_for_plan()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L238"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "label": "get_active_io_order_for_plan()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L262"}, {"id": "orderheader", "label": "OrderHeader", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "label": "parse_feedback_images()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L292"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dump_feedback_images", "label": "dump_feedback_images()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L304"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "label": "apply_site_feedback()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311"}, {"id": "orderitem", "label": "OrderItem", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "label": "resolve_unit_label()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L352"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "label": "merge_plan_logistics_into_order()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L359"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "label": "merge_plan_product_into_item()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L390"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "label": "enrich_io_order_dict()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L417"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "label": "order_header_to_dict()", "file_type": "code", "source_file": "app/services/pl_io_order_service.py", "source_location": "L508"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5165\u5e93\u5355 / \u51fa\u5e93\u5355\uff08\u5b89\u6392\u8fd0\u8f93\u843d\u5355\u3001\u73b0\u573a\u56de\u4f20\u3001\u4f5c\u5e9f\uff09", "file_type": "rationale", "source_file": "app/services/pl_io_order_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_122", "label": "\u5b89\u6392\u8fd0\u8f93\u540e\u521b\u5efa\u5165\u5e93/\u51fa\u5e93\u5355\u3002\u76f4\u9500\u8fd4\u56de None\u3002", "file_type": "rationale", "source_file": "app/services/pl_io_order_service.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_200", "label": "\u5730\u78c5\u5355\u751f\u6210\u540e\uff0c\u7528\u6570\u91cf\u9884\u586b\u5c1a\u672a\u88ab\u73b0\u573a\u6539\u8fc7\u7684\u660e\u7ec6 actual_qty\u3002", "file_type": "rationale", "source_file": "app/services/pl_io_order_service.py", "source_location": "L200"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "secrets", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_models_db_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_services_db_mappers", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "app_services_pl_dibang_bridge_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_ioordercreateresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L44", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L50", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L50", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "target": "date", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L50", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L61", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L61", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L79", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L79", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L79", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "pltransport", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_ioordercreateresult", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "target": "pltransport", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "target": "plplan", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "target": "orderheader", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L292", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dump_feedback_images", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "target": "orderheader", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "target": "orderitem", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "target": "decimal", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "target": "plplan", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L390", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "target": "plplanproduct", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L390", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L417", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L417", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L417", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "orderheader", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "any", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L508", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "target": "date", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L53", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L107", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L136", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L137", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L159", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_ioordercreateresult", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L219", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dump_feedback_images", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L334", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L401", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L440", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L496", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L503", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L528", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L530", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L558", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L560", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_122", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_rationale_200", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "app/services/pl_io_order_service.py", "source_location": "L200", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "callee": "rstrip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L45", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "datetime", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L52"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "str", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L54"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "parse_date_str", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L55", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "today", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L55", "receiver": "date"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "date", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L56"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "callee": "today", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L58", "receiver": "date"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "strftime", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L62", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L62", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L65", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L65", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "like", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L66", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L67", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L83", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "PlTransportDbLink", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L83"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L97", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "DbInboundOutbound", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L97"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L98", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L104", "receiver": "inv_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "resolve_partner_company", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L131", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L133", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "token_urlsafe", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L135", "receiver": "secrets"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L138", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "header_model", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L141", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L142", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L149", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L156", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "_product_quantity", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L159", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L160", "receiver": "dibang_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L164", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "item_model", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L165", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L166", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L183", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L206", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L206", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L206", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L214", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L223", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L228", "receiver": "dibang_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L235", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "callee": "PlInboundOrder", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L245"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "callee": "PlOutboundOrder", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L245"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L247", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L259", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L267", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L267", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L267", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "PlInboundOrder", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L267"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L273", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L279", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "order_by", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L279", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L279", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "PlOutboundOrder", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L279"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "callee": "desc", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L285", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "loads", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L296", "receiver": "json"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L297"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "TypeError", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L299"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L301", "receiver": "part"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "split", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L301", "receiver": "raw"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L301", "receiver": "part"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dump_feedback_images", "callee": "dumps", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L305", "receiver": "json"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L323", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "callee": "ValueError", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L325", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "callee": "now", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L326", "receiver": "datetime"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L333", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "callee": "flush", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L340", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L353", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L356", "receiver": "unit_map"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L361", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L362", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L363", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L364", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L365", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L366", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L367", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L368", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L369", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L370", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L371", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L372", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L373", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L375", "receiver": "PLAN_TYPE_BUSINESS_LABEL"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L376", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L398", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L399", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "setdefault", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L400", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L401", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L404", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L404", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L405", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L406", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L411", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L412", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L414", "receiver": "item"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "first", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L432", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L432", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "PlPlan", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L432"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "CRM_PRODUCT_UNIT", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L444"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "load_dict_label_maps", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L442", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "CRM_PRODUCT_UNIT", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L443"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L446", "receiver": "data"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L451", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L453", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L458", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "PlPlanProduct", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L458"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L460", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L469", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "values", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L470", "receiver": "products_by_id"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L471", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L474", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L474", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "add", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L476", "receiver": "crm_ids"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "query", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L480", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "in_", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L482", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L489", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L494", "receiver": "products_by_id"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L494", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L495", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L495", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L500", "receiver": "crm_no_by_id"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L503", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "callee": "get", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L503", "receiver": "it"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "callee": "isoformat", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L526", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "callee": "join", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L555", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L556", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "callee": "strip", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_io_order_service.py", "source_location": "L556", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_dibang_prefill_to_order", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_apply_site_feedback", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_build_io_order_site_url", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_create_io_order_for_transport", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dibang_qty_by_plan_product", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_dump_feedback_images", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_enrich_io_order_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_get_active_io_order_for_plan", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_ioordercreateresult", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_logistics_into_order", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_merge_plan_product_into_item", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_next_order_no", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_normalize_plan_date", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_order_header_to_dict", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_parse_feedback_images", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_resolve_unit_label", "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_io_order_service_void_io_orders_for_plan"]} \ 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 f1408df4c..3beb08485 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":50055,"mtime_ns":1782855138000000000,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360000000000,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567000000000,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/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":15431,"mtime_ns":1783747621000000000,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/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":151231,"mtime_ns":1784336540000000000,"hash":"c9e4c524a6c867f0b3b4268d20d997e0dccbfe134b7cfb35e002b5e447077ea0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526000000000,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/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":25633,"mtime_ns":1783825326000000000,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/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":1784428053258253098,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851000000000,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/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":13188,"mtime_ns":1783242583000000000,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":10916,"mtime_ns":1784450604028024196,"hash":"6cfc141fdd47cf3b58f567eefb11a3105aa9f5634962fbbee03cc87e4d826bf7"},"/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":49809,"mtime_ns":1784428006090757515,"hash":"54b9ae8ed67dc3b1a6824aa93912e24c526417f6ce9b6570361e92c2dffbe72e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":6434,"mtime_ns":1784452138689286608,"hash":"b19d600d37df1bbae154e0b97082e5ee3a2221a063a07afbffccd26d53f26365"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738000000000,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9697,"mtime_ns":1783209147000000000,"hash":"aac3cfd1a30df824d1a4867c5b358e3155e19a051dbaffbae89c995b55767a8c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":34248,"mtime_ns":1784448472915898872,"hash":"40a62f67bee3e02962b1bc780fbcd2026ac4fee1356db1d2a34b168be846ac29"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484000000000,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/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":7027,"mtime_ns":1784428051539987571,"hash":"4a79ef22b9d9c3ae5ce1a3a8227bfac549d1a318a4609927610ef8eacc0008e6"},"/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":8043,"mtime_ns":1782648925000000000,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/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":14141,"mtime_ns":1782855136000000000,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/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":92433,"mtime_ns":1783763318000000000,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/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":13126,"mtime_ns":1782650413000000000,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/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":25974,"mtime_ns":1783820522000000000,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675000000000,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/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":10537,"mtime_ns":1782687676000000000,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/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":6916,"mtime_ns":1782687684000000000,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283000000000,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289000000000,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289000000000,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930000000000,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/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":1584,"mtime_ns":1780201410000000000,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288000000000,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/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":6525,"mtime_ns":1782688288000000000,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/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":1784428054687122448,"hash":"5fb1824a47d8362c5b98661559be23282c31c1b3dbedc4a89da42df6ec610b1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957000000000,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/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":16644,"mtime_ns":1782003187000000000,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553000000000,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/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":69040,"mtime_ns":1784427927318934625,"hash":"e73f65c35b6886fe023949d4632ecb5115b2d943e6040c70597ea85e3d310793"},"/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":5638,"mtime_ns":1782688293000000000,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/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":10565,"mtime_ns":1784336987000000000,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/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":8227,"mtime_ns":1784336535000000000,"hash":"7a0d6f5118c4efc8d2d24b994e155ff3aa2bb4a49809caa7ba5f38af152e1088"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856000000000,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/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":3679,"mtime_ns":1780242127000000000,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/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":19762,"mtime_ns":1783849843000000000,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/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":11275,"mtime_ns":1783213205000000000,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580000000000,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":4635,"mtime_ns":1784452137473993438,"hash":"eb3e00bac46d9a992bbd88cbcbd9dfd47f4e655ca75b8df64ae6efb32cc1bcd2"},"/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":22053,"mtime_ns":1783754594000000000,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/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":18487,"mtime_ns":1784427963269581886,"hash":"1e896deff36db6e9cc779e66ceb1e604a7f7a35ab58cc0652fbac347a183ddb4"},"/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":3931,"mtime_ns":1782687617000000000,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887000000000,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614000000000,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869000000000,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919000000000,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/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":3479,"mtime_ns":1783848338000000000,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967000000000,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/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":16733,"mtime_ns":1784452137117691732,"hash":"4c758fb1735aecf5cd4d1bc5ab8d9c599c95221893ee8b157580e4a4ecbb9b3e"},"/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":41565,"mtime_ns":1784428479532718731,"hash":"fe6c7f60dbcccdd606884fe86f00db3d2688585083cab1e4e10b39ca42083d84"},"/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":1783888844000000000,"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":1783887050000000000,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258000000000,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258000000000,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271000000000,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353000000000,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925000000000,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690000000000,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475000000000,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816000000000,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225000000000,"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":1783855936000000000,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947000000000,"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":1783861492000000000,"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":82266,"mtime_ns":1784119136000000000,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/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":1784450322324343243,"hash":"0f0fba3a24b2eeda1af4c30180306eca8da5f3dd1807f2e7591f4c46548440c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3297,"mtime_ns":1784452108494820345,"hash":"0e80833fe1ee8ea91f6929ec04cd501579e98f55acef838306ae25940cc569bf"}} \ 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":50055,"mtime_ns":1782855138000000000,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360000000000,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":13370,"mtime_ns":1783745567000000000,"hash":"3097a75d86d09951d7de7df10a32f5aedcf6ce11279bdf6dfe0005ec9d8a7be1"},"/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":15431,"mtime_ns":1783747621000000000,"hash":"dae4bfc4be69ca2f3ee8fd2e9e3bd6053a2904c8f7a0c83e536f2dd71874f918"},"/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":151231,"mtime_ns":1784336540000000000,"hash":"c9e4c524a6c867f0b3b4268d20d997e0dccbfe134b7cfb35e002b5e447077ea0"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29547,"mtime_ns":1783825526000000000,"hash":"95969972c0773528b91d9728d303feae5ca7187d89a49495d5129dcedffc19dc"},"/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":25633,"mtime_ns":1783825326000000000,"hash":"c51b70766aae85dbc537bf5b48a2c350c73ea8e93bcad2a9660d8d45c6d0979d"},"/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":1784428053258253098,"hash":"dea849a84ab13ec8daf7782c055f04682fb763bbfd2f184e37ace15312421905"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":33513,"mtime_ns":1783849851000000000,"hash":"133db64dcfad9ae687b90084eb8f1b5f713ebabce852bba26b600cab52e51c50"},"/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":13188,"mtime_ns":1783242583000000000,"hash":"da03959cdab792ef503edae6ee27e45f9b5a8db1c63cdbcd97bafa85acc9be71"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py":{"size":10916,"mtime_ns":1784450604028024196,"hash":"6cfc141fdd47cf3b58f567eefb11a3105aa9f5634962fbbee03cc87e4d826bf7"},"/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":49809,"mtime_ns":1784428006090757515,"hash":"54b9ae8ed67dc3b1a6824aa93912e24c526417f6ce9b6570361e92c2dffbe72e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_io_order.py":{"size":6434,"mtime_ns":1784452138689286608,"hash":"b19d600d37df1bbae154e0b97082e5ee3a2221a063a07afbffccd26d53f26365"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":8470,"mtime_ns":1783211738000000000,"hash":"08745e00bfa7bd756fbeef7ae7a1d3bf957d6403da51cf7825def02a38502d01"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":9838,"mtime_ns":1784517520407451563,"hash":"0776250930d0ffe6ce078c3fb6d9b46e5ee66a3404c1ec4081487331a5262659"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":34248,"mtime_ns":1784448472915898872,"hash":"40a62f67bee3e02962b1bc780fbcd2026ac4fee1356db1d2a34b168be846ac29"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py":{"size":6875,"mtime_ns":1782907484000000000,"hash":"7880a37b53dc2e88534ca5750097792ee7e893c94d87bf1eecd8b6055fbba181"},"/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":7027,"mtime_ns":1784428051539987571,"hash":"4a79ef22b9d9c3ae5ce1a3a8227bfac549d1a318a4609927610ef8eacc0008e6"},"/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":8043,"mtime_ns":1782648925000000000,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/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":14141,"mtime_ns":1782855136000000000,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/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":92433,"mtime_ns":1783763318000000000,"hash":"b2362db2f2df750afc1c2263f5e6ac1ccd5daa8b93ad5650d56028f452597837"},"/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":13126,"mtime_ns":1782650413000000000,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/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":25974,"mtime_ns":1783820522000000000,"hash":"6d1fb7bc06a4f16c729b1b226377ffa38b9b47bf1cc75310dcefbb8f6e480574"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675000000000,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/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":10537,"mtime_ns":1782687676000000000,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/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":6916,"mtime_ns":1782687684000000000,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283000000000,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289000000000,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289000000000,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930000000000,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/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":1584,"mtime_ns":1780201410000000000,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288000000000,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/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":6525,"mtime_ns":1782688288000000000,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/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":1784428054687122448,"hash":"5fb1824a47d8362c5b98661559be23282c31c1b3dbedc4a89da42df6ec610b1f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2186,"mtime_ns":1784035957000000000,"hash":"5af681963b36af57eaca7fdfc7f707255008ffba18df1a8c2d5903f58fcbf159"},"/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":16644,"mtime_ns":1782003187000000000,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":66592,"mtime_ns":1784122553000000000,"hash":"1a0a09e5f5d9eb2d5e18e2f7d851287442ee370a3abfbf0b487ee4b4a18d43b3"},"/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":69040,"mtime_ns":1784427927318934625,"hash":"e73f65c35b6886fe023949d4632ecb5115b2d943e6040c70597ea85e3d310793"},"/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":5638,"mtime_ns":1782688293000000000,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/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":10565,"mtime_ns":1784336987000000000,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/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":8227,"mtime_ns":1784336535000000000,"hash":"7a0d6f5118c4efc8d2d24b994e155ff3aa2bb4a49809caa7ba5f38af152e1088"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856000000000,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/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":3679,"mtime_ns":1780242127000000000,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/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":19762,"mtime_ns":1783849843000000000,"hash":"21d29a63b2dbd9178f2239d109c4e71e668c2caf85788dcecc34e7533f0df4e6"},"/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":11275,"mtime_ns":1783213205000000000,"hash":"557f9e9f06ab6f18eb33f54a579fb8ab0f6992d9b25bb530a2ec49d5b2365708"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7742,"mtime_ns":1783242580000000000,"hash":"9b57e84bea4844ce93220773544064ed6979c5823b07831bc5fe734b6dc860d3"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/schemas/pl/io_order.py":{"size":4635,"mtime_ns":1784452137473993438,"hash":"eb3e00bac46d9a992bbd88cbcbd9dfd47f4e655ca75b8df64ae6efb32cc1bcd2"},"/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":22053,"mtime_ns":1783754594000000000,"hash":"f3a69a96b7916cb34e23e673b3155d83f7d9698b2582cfae96dedc392da8e6b8"},"/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":18707,"mtime_ns":1784517518998036092,"hash":"026b9635a13b1d59fb76949997b3ac8691ae30e33f576e287a8f86329980b74f"},"/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":3931,"mtime_ns":1782687617000000000,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887000000000,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":34743,"mtime_ns":1783747614000000000,"hash":"ba8f3ff0304a6668bde3c2e6c3e15427153389f7320b943fb261d1d947b41d1e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869000000000,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919000000000,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/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":3479,"mtime_ns":1783848338000000000,"hash":"7d12991ffd2e3d7b768aaa587d7f9ae1ed4d641f65ec3f053ed103fc74a5a005"},"/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_cert_required_service.py":{"size":10503,"mtime_ns":1783946967000000000,"hash":"07991890446a106b2d520e5e3c65e27af90c13d00945516ef1ce9bdf2e389879"},"/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":18113,"mtime_ns":1784517609245938734,"hash":"1126f9a852abb77234212b85c26d382f4e691bcf22c0d2a4d7815c6da16c3506"},"/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":41565,"mtime_ns":1784428479532718731,"hash":"fe6c7f60dbcccdd606884fe86f00db3d2688585083cab1e4e10b39ca42083d84"},"/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":1783888844000000000,"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":1783887050000000000,"hash":"72b84e497176bc63264c26d891c591c839f9dd9788988043c5752413c1b62a09"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_contract.py":{"size":36188,"mtime_ns":1783888258000000000,"hash":"a6269c8eeff19f4ae8ff7d22a3544ebc4a1858aaecd59583e6afd140a7fa766e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_customer.py":{"size":25235,"mtime_ns":1783886258000000000,"hash":"f30d5a50a28a1130325a9d9db88586bcae9e2a39434f077ded25f847af2ed66f"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_opportunity.py":{"size":23720,"mtime_ns":1783887271000000000,"hash":"f98964806f32c3020bdd7d644d930760d6ea3ad5162d5f1d6125494263dd5598"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_payment_invoice.py":{"size":13601,"mtime_ns":1783888353000000000,"hash":"c4af77164dac9ba4195c3d239c9679ea367b92f5f7500139f3b59547525af24e"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product.py":{"size":13287,"mtime_ns":1783860925000000000,"hash":"3e5dd462f2ad6218d2547b66db741132d0179037e6dd3ac24ddaa02a5b970d4b"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_product_category.py":{"size":15583,"mtime_ns":1783860690000000000,"hash":"9cbdfdf3335a366aebd0a605431b3952ea9aab26bd564d075d501479ae0b20f7"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_quote.py":{"size":27580,"mtime_ns":1783887475000000000,"hash":"4ac389eb6cb7437d4f5e8203d9908efec9836046ce8628a5e4be1f8b8ddd52cd"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_crm_sys_oss.py":{"size":22858,"mtime_ns":1783885816000000000,"hash":"20f59e7e19a0c4415bdf17cef32a31db63220346688b3dbe06bc2c52a42d475c"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225000000000,"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":1783855936000000000,"hash":"f5626fd3ca8bbc16275862080365c3ea2a27fd0f608e2243a284493762a8f735"},"/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migration/minio_url.py":{"size":4770,"mtime_ns":1783884947000000000,"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":1783861492000000000,"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":82266,"mtime_ns":1784119136000000000,"hash":"e0c15f9bd4525b6e447a7e8da3aa6bf93c14c47a1b99dc5cb4bee9dfd1a60e8b"},"/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":1784450322324343243,"hash":"0f0fba3a24b2eeda1af4c30180306eca8da5f3dd1807f2e7591f4c46548440c4"},"/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_io_order_site_feedback_status.py":{"size":3297,"mtime_ns":1784452108494820345,"hash":"0e80833fe1ee8ea91f6929ec04cd501579e98f55acef838306ae25940cc569bf"}} \ No newline at end of file diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index f3a05e061..18d431ce3 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -2,7 +2,7 @@
-