This commit is contained in:
zlwu committed 2026-08-19 09:14:37 +08:00
1 parent c3bd2c00ae
commit a52fe77e34
39 files changed
+609647 -9238

No files matched your search

+1 -373
View File
@@ -74,40 +74,24 @@
"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",
@@ -116,153 +100,59 @@
"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": "minio_url.py",
"172": "apply_pl_scope",
"173": "resolve_create_time_bounds",
"174": "register_local_callback",
"175": "vehicle_maintenance.py",
"176": "_forbid_legacy_invoice_fields",
"177": "vehicle_maintenance.py",
"178": ".__init__",
"179": "test_pl_vehicle_personnel_photo_schema.py",
"180": "OSSStorage",
"181": "allocate_next_biz_no",
"182": "statistics.py",
"183": "resolve_create_time_bounds",
"184": "excel_export.py",
"185": "vehicle_urea.py",
"186": "transport_address.py",
"187": "price_letter_detail",
"188": "get_client_ip",
"189": "create",
"190": "menu.py",
"191": "context.py",
"192": "pool_rule.py",
"193": "storage.py",
"194": "get_current_user_by_token",
"195": "PlFreightSettlementTransport",
"196": "crm_contract_sub_routes.py",
"197": "_coerce_resource_snapshot",
"198": "user.py",
"199": "price_letter_detail",
"200": "assert_contract_editable_for_update",
"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",
@@ -272,165 +162,6 @@
"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)",
@@ -440,108 +171,5 @@
"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"
"504": "PlanResourceSnapshotMixin"
}