{ "0": "Community 0", "1": "Community 1", "2": "Community 2", "3": "Community 3", "4": "Community 4", "5": "Community 5", "6": "Community 6", "7": "Community 7", "8": "Community 8", "9": "Community 9", "10": "Community 10", "11": "Community 11", "12": "Community 12", "13": "Community 13", "14": "Community 14", "15": "Community 15", "16": "Community 16", "17": "Community 17", "18": "Community 18", "19": "Community 19", "20": "Community 20", "21": "Community 21", "22": "Community 22", "23": "Community 23", "24": "Community 24", "25": "Community 25", "26": "Community 26", "27": "Community 27", "28": "Community 28", "29": "Community 29", "30": "Community 30", "31": "Community 31", "32": "Community 32", "33": "Community 33", "34": "Community 34", "35": "Community 35", "36": "Community 36", "37": "Community 37", "38": "Community 38", "39": "Community 39", "40": "Community 40", "41": "Community 41", "42": "Community 42", "43": "Community 43", "44": "Community 44", "45": "Community 45", "46": "Community 46", "47": "Community 47", "48": "Community 48", "49": "Community 49", "50": "Community 50", "51": "Community 51", "52": "Community 52", "53": "Community 53", "54": "Community 54", "55": "Community 55", "56": "Community 56", "57": "Community 57", "58": "Community 58", "59": "Community 59", "60": "Community 60", "61": "Community 61", "62": "Community 62", "63": "Community 63", "64": "Community 64", "65": "Community 65", "66": "Community 66", "67": "Community 67", "68": "Community 68", "69": "Community 69", "70": "Community 70", "71": "Community 71", "72": "Community 72", "73": "Community 73", "74": "Community 74", "75": "Community 75", "76": "Community 76", "77": "Community 77", "78": "Community 78", "79": "Community 79", "80": "Community 80", "81": "Community 81", "82": "Community 82", "83": "Community 83", "84": "Community 84", "85": "Community 85", "86": "Community 86", "87": "Community 87", "88": "Any", "89": "pl_ocr_service.py", "90": "Community 90", "91": "pl_vehicle_recharge_service.py", "92": "Community 92", "93": "_invoice_info_by_customer_impl", "94": "response.py", "95": "Community 95", "96": "Community 96", "97": "_ensure_subpack_slip_no", "98": "Community 98", "99": "Community 99", "100": "price_letter_detail", "101": ".to_tenant_user_dict", "102": "dept.py", "103": "Community 103", "104": "apply_crm_create_by_scope", "105": "list_customers", "106": "Community 106", "107": "apply_pl_scope", "108": "Community 108", "109": "Community 109", "110": "Base", "111": "Community 111", "112": "storage.py", "113": "quote_share_log.py", "114": "db_models.py", "115": "site.py", "116": "Community 116", "117": "Community 117", "118": "Community 118", "119": "Community 119", "120": "Community 120", "121": "Community 121", "122": "Community 122", "123": "Community 123", "124": "Community 124", "125": "Community 125", "126": "customer_pool.py", "127": "Community 127", "128": "plan.py", "129": "BaseStorage", "130": "datetime_parse.py", "131": "LocalStorage", "132": "crm_supplier_hazard.py", "133": "Community 133", "134": "Community 134", "135": "unsettled_plans_q_filter", "136": "Community 136", "137": "statistics.py", "138": "Community 138", "139": "get_current_user_by_token", "140": "Community 140", "141": "PlTransport", "142": "Community 142", "143": "SysEthnic", "144": "dict_data.py", "145": "resolve_crm_product", "146": "__init__.py", "147": "Community 147", "148": "storage.py", "149": "Community 149", "150": "apply_site_feedback", "151": "Community 151", "152": "response.py", "153": "Community 153", "154": "response.py", "155": "Community 155", "156": "utils.py", "157": "Community 157", "158": "Community 158", "159": "customer_update", "160": "register_local_callback", "161": "backfill_crm_contract_attachment_urls.py", "162": ".to_tenant_user_dict", "163": "__init__.py", "164": "get_client_ip", "165": "Community 165", "166": "code:block1 (/iflytek/shanxia2.0/backend)", "167": "Community 167", "168": "vehicle_urea.py", "169": "product.py", "170": "test_quote_approver_setting.py", "171": "crm_supplier_hazard.py", "172": "apply_pl_scope", "173": "resolve_create_time_bounds", "174": "CrmProductBrand", "175": "vehicle_maintenance.py", "176": "_forbid_legacy_invoice_fields", "177": "vehicle_maintenance.py", "178": "opportunity_export", "179": "_ensure_subpack_slip_no", "180": "OSSStorage", "181": "storage.py", "182": "statistics.py", "183": "MinIOStorage", "184": "QiniuStorage", "185": "vehicle_urea.py", "186": "transport_address.py", "187": "allocate_next_biz_no", "188": "list_product_options", "189": "create", "190": "menu.py", "191": "BaseStorage", "192": "pool_rule.py", "193": "LocalStorage", "194": "PlCarrier", "195": "pool_customer_assign", "197": "_coerce_resource_snapshot", "198": "user.py", "200": "register_local_callback", "202": "statistics.py", "206": "crm_quote_pdf.py", "207": "shanxia2.0 后端骨架(FastAPI)", "211": "leave.py", "216": "io_order.py", "217": "auth.py", "218": "pool_rule.py", "220": "api_crypto_middleware.py", "223": "workflow.py", "224": "supplier_info.py", "226": "get_active", "228": "advance.py", "230": "attachment.py", "232": "transport_address.py", "233": "customer_pool.py", "235": "invoice_info.py", "236": "price_letter.py", "237": "order_status_compat.py", "239": "shanxia2.0 Backend 生产部署说明", "240": "delete", "242": "leave.py", "244": "expense_item.py", "245": "__init__.py", "246": "db_collation.py", "247": "expense_item.py", "249": "__init__.py", "250": "invoice.py", "251": "menu.py", "252": "public_inventory.py", "254": "Activate.ps1", "256": "statistics.py", "259": "一次上传一条发票:多文件挂同一档案,金额为总额,只写一条额度流水。", "262": "reimburse.py", "263": "__init__.py", "264": "__init__.py", "265": "__init__.py", "266": "workflow.py", "269": "__init__.py", "270": "leave.py", "271": "menu.py", "272": "__init__.py", "273": "__init__.py", "274": "__init__.py", "275": "__init__.py", "276": "__init__.py", "278": "__init__.py", "281": "__init__.py", "286": "send_delivery_notice", "287": "__init__.py", "288": "__init__.py", "289": "send_delivery_warning", "292": "send_order_status", "293": "__init__.py", "294": "__init__.py", "295": "__init__.py", "296": "__init__.py", "297": "__init__.py", "298": "__init__.py", "299": "__init__.py", "300": "__init__.py", "301": "__init__.py", "302": "send_payment_success", "303": "send_refund_result", "304": "__init__.py", "305": "__init__.py", "306": "__init__.py", "307": "__init__.py", "308": "__init__.py", "309": "__init__.py", "310": "__init__.py", "311": "__init__.py", "312": "__init__.py", "313": "send_urge_notification", "314": "get", "315": "get_multi_with_filters", "317": "base.py", "318": "clue.py", "320": "customer_pool.py", "321": "customer.py", "323": "invoice_info.py", "326": "price_letter.py", "327": "product.py", "328": "quote.py", "329": "user.py", "330": "base.py", "331": "__tablename__", "332": "__init__.py", "333": "advance.py", "334": "validate_expense_item_id", "335": "attachment.py", "336": "common.py", "337": "validate_parent_id", "338": "__init__.py", "339": "invoice.py", "340": "coerce_applicant_id", "341": "details_must_not_be_empty", "342": "reimburse.py", "343": "validate_advance_id", "344": "validate_expense_item_id", "345": "validate_approver_id", "346": "common.py", "347": "contact.py", "348": "customer_follow.py", "349": "customer.py", "350": "dashboard.py", "351": "__init__.py", "352": "inventory.py", "353": "plans.py", "354": "weighing.py", "355": "__init__.py", "356": "freight.py", "357": "__init__.py", "358": "plan.py", "360": "validate_coordinates", "361": "transport.py", "362": "validate_amount", "363": "validate_amount", "364": "validate_recharge_type", "365": "validate_amount", "366": "validate_apply_amount", "367": "validate_quantity", "368": "approve", "369": "create", "370": "finance_issue_stats", "371": "get_by_id", "372": "get_paged", "373": "global_status_counts", "374": "issue", "375": "_latest_approval_per_node", "376": "_my_apply_base", "377": "my_apply_stats", "378": "offset_amount_map", "379": "pending_approval_stats", "380": "advance.py", "381": "_query_approvals", "382": "reject", "383": "soft_delete", "384": "submit", "385": "_tenant_no", "386": "update", "387": "_workflow_nodes", "389": "create", "390": "get_by_biz", "391": "get_by_id", "392": "attachment.py", "393": "soft_delete", "394": "_tenant_no", "395": "get_by_id", "396": "get_paged", "397": "base.py", "398": "soft_delete", "399": "update", "401": "_build_tree", "402": "create", "403": "get_by_id", "404": "get_item_tree", "405": "expense_item.py", "406": "soft_delete", "407": "_tenant_no", "408": "update", "409": "_count_invoices", "410": "create", "411": "delete", "412": "get_mine_summary", "413": "is_wallet_admin", "414": "add_entry", "415": "assert_can_delete_invoice", "416": "calc_summary", "417": "debit_reimburse", "418": "list_entries", "419": "_lock_summary", "420": "refresh_summary", "421": "release_reimburse", "422": "list_ledgers", "423": "list_wallets", "424": "_lookup_user_name", "425": "out_rows_with_attachments", "426": "invoice.py", "427": "_require_wallet_admin", "428": "_resolve_owner", "429": "_resolve_owner_for_query", "430": "_summary_to_dict", "431": "_tenant_no", "432": "approve", "433": "batch_offset", "434": "build_apply_out_with_details", "435": "build_expense_name_condition", "436": "can_change_applicant", "437": "create_with_details", "438": "finance_payment_stats", "439": "get_by_id", "440": "get_details", "441": "get_details_map_by_reimburse_ids", "442": "get_linked_invoice_ids", "443": "get_linked_invoice_ids_map", "444": "get_linked_invoices_brief", "445": "get_paged", "446": "global_status_counts", "447": "_has_debit_reimburse", "448": "_latest_approval_per_node", "449": "_my_apply_base", "450": "my_apply_stats", "451": "offset", "452": "out_one_with_attachment_counts", "453": "out_rows_with_attachment_counts", "454": "pay", "455": "reimburse.py", "456": "_query_approvals", "457": "reject", "458": "resolve_applicant", "459": "soft_delete", "460": "submit", "461": "sync_reimburse_invoices", "462": "_tenant_no", "463": "update_with_details", "464": "withdraw", "465": "_workflow_nodes", "466": "ensure_by_biz_type", "467": "get_by_biz_type", "468": "get_by_id", "469": "get_paged", "470": "workflow.py", "471": "save_nodes", "472": "soft_delete", "473": "_tenant_no", "474": "update", "487": "_get_variable", "488": "_parse_node_config", "489": "_parse_variables", "490": "customer_pool.py", "491": "__init__.py", "495": "code:bash (cd /path/to/shanxia2.0)", "496": "code:bash (./start-prod.sh status # 查看状态)", "497": "code:bash (curl -s http://127.0.0.1:9111/health)", "498": "code:bash (cd /iflytek/shanxia2.0/backend)", "499": "code:bash (python -m venv venv)", "500": "code:bash (pip install -r requirements.txt)", "501": "code:env (# 数据库配置)", "502": "code:bash (uvicorn app.main:app --reload --port 8000)", "503": "BaseModel", "504": "PlanResourceSnapshotMixin", "510": "advance.py", "511": "attachment.py", "512": "expense_item.py", "514": "workflow.py", "517": "dashboard.py", "518": "__init__.py", "519": "inventory.py", "520": "plans.py", "521": "public_inventory.py", "522": "weighing.py", "523": "__init__.py", "524": "leave.py", "525": "menu.py", "526": "base_data.py", "527": "freight.py", "528": "__init__.py", "529": "inventory.py", "530": "io_order.py", "531": "plan.py", "533": "transport_address.py", "534": "transport.py", "535": "vehicle_maintenance.py", "536": "vehicle_recharge.py", "537": "vehicle_urea.py", "538": "workflow.py", "539": "auth.py", "545": "__init__.py", "548": "storage.py", "551": "base.py", "553": "clue.py", "554": "contact.py", "555": "contract.py", "556": "customer_follow.py", "557": "customer_pool.py", "558": "customer.py", "559": "invoice_info.py", "560": "opportunity.py", "561": "pool_rule.py", "562": "price_letter.py", "563": "product.py", "564": "quote.py", "565": "statistics.py", "566": "supplier_info.py", "569": "__init__.py", "570": "leave.py", "571": "menu.py", "573": "user.py", "574": "workflow.py", "576": "base.py", "577": "__init__.py", "578": "attachment.py", "579": "auth.py", "580": "advance.py", "581": "attachment.py", "582": "common.py", "583": "expense_item.py", "584": "__init__.py", "585": "workflow.py", "586": "common.py", "587": "clue.py", "588": "contact.py", "589": "contract.py", "590": "customer_follow.py", "591": "customer_pool.py", "592": "customer.py", "593": "invoice_info.py", "594": "opportunity.py", "595": "pool_rule.py", "596": "price_letter.py", "597": "product.py", "598": "quote.py", "599": "statistics.py", "600": "supplier_info.py", "601": "dashboard.py", "602": "__init__.py", "603": "inventory.py", "604": "plans.py", "605": "public_inventory.py", "606": "weighing.py", "607": "__init__.py", "608": "leave.py", "609": "menu.py", "610": "base_data.py", "611": "freight.py", "612": "__init__.py", "613": "inventory.py", "614": "io_order.py", "615": "plan.py", "616": "transport_address.py", "617": "transport.py", "618": "vehicle_maintenance.py", "619": "vehicle_recharge.py", "620": "vehicle_urea.py", "621": "user.py", "622": "workflow.py", "623": "advance.py", "624": "attachment.py", "625": "base.py", "626": "expense_item.py", "627": "storage.py", "628": "workflow.py", "636": "customer_pool.py", "638": "__init__.py" }