This commit is contained in:
zlwu committed 2026-08-30 18:33:13 +08:00
1 parent c8cec132bf
commit 19c5aaa8f5
95 files changed
+309129 -9838

No files matched your search

@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_py", "label": "test_pl_contract_qty_arrange_check.py", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_effective_arranged_total_subtracts_old", "label": "test_effective_arranged_total_subtracts_old()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_effective_arranged_total_rounds", "label": "test_effective_arranged_total_rounds()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L14"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_framework_customer_demand_not_fixed", "label": "test_framework_customer_demand_not_fixed()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_framework_fixed_mode_with_qty_is_fixed", "label": "test_framework_fixed_mode_with_qty_is_fixed()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_sale_positive_qty_is_fixed", "label": "test_sale_positive_qty_is_fixed()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_zero_or_empty_qty_not_fixed", "label": "test_zero_or_empty_qty_not_fixed()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L51"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_evaluate_skip_when_no_new_qty", "label": "test_evaluate_skip_when_no_new_qty()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_evaluate_overflow_violation", "label": "test_evaluate_overflow_violation()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L69"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_evaluate_remaining_reminder", "label": "test_evaluate_remaining_reminder()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_evaluate_rearrange_deducts_old", "label": "test_evaluate_rearrange_deducts_old()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_evaluate_framework_cumulative", "label": "test_evaluate_framework_cumulative()", "file_type": "code", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L112"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_rationale_1", "label": "\u5b89\u6392\u8fd0\u8f93\u65f6\u5408\u540c\u6570\u91cf\u786c\u62e6 / \u63d0\u9192\u7eaf\u51fd\u6570\u5355\u6d4b\u3002", "file_type": "rationale", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_py", "target": "app_services_pl_contract_plan_qty", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_effective_arranged_total_subtracts_old", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_qty_arrange_check_test_effective_arranged_total_rounds", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_qty_arrange_check.py", "source_location": "L14", "weight": 1.0}Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_ensure_contract_in_scope", "label": "_ensure_contract_in_scope()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L53"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_contract_row_in_scope", "label": "_get_contract_row_in_scope()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L74"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L80"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L88"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L106"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L129"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L139"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L143"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_default_invoice_info", "label": "_get_default_invoice_info()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L161"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L173"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L252"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L256"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_list_contracts", "label": "list_contractsLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_py", "label": "plan.py", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_list_product_name", "label": "_resolve_list_product_name()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L154"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_create_date", "label": "_resolve_create_date()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L170"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L174"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_format_subpack_slip_no", "label": "_format_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L206"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_normalize_subpack_slip_no", "label": "_normalize_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_subpack_slip_no_seq", "label": "_subpack_slip_no_seq()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_ensure_subpack_slip_no", "label": "_ensure_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L243"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_determine_plan_type", "label": "_determine_plan_type()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_get_plan_type_label", "label": "_get_plan_type_label()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L280"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_notify_message", "label": "_generate_notify_message()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L289"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_product_name_exists", "label": "_plan_product_name_exists()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L309"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_plate_match", "label": "_plan_plate_match()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L323"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_parse_status_csv", "label": "_parse_status_csv()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_follow_status_filter", "label": "_apply_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L338"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_exclude_follow_status_filter", "label": "_apply_exclude_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L347"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L357"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "planlistresponse", "label": "PlanListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_load_transports_by_id", "label": "_load_transports_by_id()", "file_type": "code", "source_file": "app/api/pl/plan.py", "Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "label": "test_pl_arrange_auto_start_execute.py", "file_type": "code", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "label": "test_auto_start_execute_promotes_approved_only()", "file_type": "code", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L8"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "types", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "app_services_pl_contract_plan_qty", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_arrange_auto_start_execute.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L9", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L10", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L13", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "query", "is_member_call": false, "indirect": true, "context": "assignment", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L26"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L27", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "patch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L43", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "patch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L48", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "fake_query", "is_member_call": false, "indirect": true, "context": "assignment", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L52"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "cLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "label": "test_pl_plan_single_contract_rules.py", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "label": "test_assert_at_most_one_contract_allows_zero_or_one()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L12"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "label": "test_assert_at_most_one_contract_rejects_two()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery", "label": "_FakeQuery", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_filter", "label": ".filter()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_all", "label": ".all()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb", "label": "_FakeDb", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_query", "label": ".query()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L44"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_load_with_products", "label": "_load_with_products()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L48"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_passes_when_all_match", "label": "test_assert_load_products_in_contract_passes_when_all_match()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_rejects_outside", "label": "test_assert_load_products_in_contract_rejects_outside()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L72"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_when_no_contract", "label": "test_assert_load_products_skips_when_no_contract()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L81"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_internal_customer", "label": "test_assert_load_products_skips_internal_customer()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L100"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_plan_products_outside_contract_raises", "label": "test_assert_plan_products_outside_contract_raises()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L123"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "label": "test_pl_contract_plan_qty.py", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_archived", "label": "test_bucket_archived()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L14"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_arranged_unarchived_includes_draft_archive", "label": "test_bucket_arranged_unarchived_includes_draft_archive()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_skips_pending_and_cancelled", "label": "test_bucket_skips_pending_and_cancelled()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_merge_product_qty_maps_totals", "label": "test_merge_product_qty_maps_totals()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_sum_qtys_explicit_delivery_stop_only", "label": "test_sum_qtys_explicit_delivery_stop_only()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_legacy_use_all_stops_prefers_delivery", "label": "test_legacy_use_all_stops_prefers_delivery()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L85"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_resolve_scopes_marks_legacy", "label": "test_resolve_scopes_marks_legacy()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_accumulate_stop_products", "label": "test_accumulate_stop_products()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L112"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_decimallike", "label": "DecimalLike", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L125"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_decimallike_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L126"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_decimallike_float", "label": ".__float__()", "file_type": "code", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L129"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "types", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "app_services_pl_contract_plan_qty", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "collections", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_archived", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_arranged_unarchived_includes_draft_archive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_contract_plan_qty.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_contract_plan_qty_test_bucket_skips_peLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "label": "pl_plan_stop_service.py", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contract_link", "label": "_contract_link()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L46"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_attach_stop_brand_qtys", "label": "_attach_stop_brand_qtys()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L54"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_list_product_name", "label": "_resolve_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_apply_stop_list_product_name", "label": "_apply_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L83"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_product", "label": "_load_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L98"}, {"id": "plplanloadproduct", "label": "PlPlanLoadProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_delivery_stop_product", "label": "_delivery_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L117"}, {"id": "plplandeliveryproduct", "label": "PlPlanDeliveryProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_contract_rows_grouped", "label": "load_stop_contract_rows_grouped()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L136"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contracts_for_stop", "label": "_contracts_for_stop()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L159"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_to_decimal", "label": "_to_decimal()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L174"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_address_from_library", "label": "resolve_stop_address_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L183"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_enrich_stop_addresses_from_library", "label": "enrich_stop_addresses_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L224"}, {"id": "planloadbody", "label": "PlanLoadBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plandeliverybody", "label": "PlanDeliveryBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/apLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "label": "test_pl_plan_single_contract_rules.py", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "label": "test_assert_at_most_one_contract_allows_zero_or_one()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L12"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "label": "test_assert_at_most_one_contract_rejects_two()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery", "label": "_FakeQuery", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_filter", "label": ".filter()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_all", "label": ".all()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb", "label": "_FakeDb", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_query", "label": ".query()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L44"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_load_with_products", "label": "_load_with_products()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L48"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_passes_when_all_match", "label": "test_assert_load_products_in_contract_passes_when_all_match()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_rejects_outside", "label": "test_assert_load_products_in_contract_rejects_outside()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L72"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_when_no_contract", "label": "test_assert_load_products_skips_when_no_contract()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L81"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_internal_customer", "label": "test_assert_load_products_skips_internal_customer()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L100"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "types", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "testLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_py", "label": "pl_plan_service.py", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_determine_plan_type", "label": "determine_plan_type()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L49"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_is_ton_product_unit", "label": "is_ton_product_unit()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_product_quantity", "label": "_product_quantity()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L64"}, {"id": "planproductcreate", "label": "PlanProductCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_product_create_actual_qty", "label": "_product_create_actual_qty()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L74"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_plan_product_actual_qty", "label": "_plan_product_actual_qty()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L80"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_sum_product_actual_quantities", "label": "sum_product_actual_quantities()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L86"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_sum_plan_product_actual_quantities", "label": "sum_plan_product_actual_quantities()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L90"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_estimate_qty_fields", "label": "_estimate_qty_fields()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L94"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_build_plan_product", "label": "build_plan_product()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L105"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_apply_vehicle_snapshot_to_plan_transport", "label": "_apply_vehicle_snapshot_to_plan_transport()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L155"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_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_plan_service.py"}, {"id": "plvehicle", "label": "PlVehicle", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_resolve_driver", "label": "_resolve_driver()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L173"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_calc_freight_amount", "label": "_calc_freight_amount()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L219"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_fetch_hazard_flags_map", "label": "fetch_hazard_flags_map()", "file_type": "code", "source_file": "app/services/pl_plan_service.py", "source_location": "L240"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_service_resolve_hazard_flags_from_crm", "label": "resolve_hazard_flagLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_py", "label": "plan.py", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_list_product_name", "label": "_resolve_list_product_name()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L154"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_create_date", "label": "_resolve_create_date()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L170"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L174"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_format_subpack_slip_no", "label": "_format_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L206"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_normalize_subpack_slip_no", "label": "_normalize_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_subpack_slip_no_seq", "label": "_subpack_slip_no_seq()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_ensure_subpack_slip_no", "label": "_ensure_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L243"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_determine_plan_type", "label": "_determine_plan_type()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_get_plan_type_label", "label": "_get_plan_type_label()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L280"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_notify_message", "label": "_generate_notify_message()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L289"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_product_name_exists", "label": "_plan_product_name_exists()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L309"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_plate_match", "label": "_plan_plate_match()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L323"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_parse_status_csv", "label": "_parse_status_csv()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_follow_status_filter", "label": "_apply_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L338"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_exclude_follow_status_filter", "label": "_apply_exclude_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L347"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L357"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "planlistresponse", "label": "PlanListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_load_transports_by_id", "label": "_load_transports_by_id()", "file_type": "code", "source_file": "app/api/pl/plan.py", "Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "label": "test_pl_dibang_date_sync_on_plan_save.py", "file_type": "code", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_make_query_router", "label": "_make_query_router()", "file_type": "code", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L13"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_test_sync_same_month_updates_inventory_date_only", "label": "test_sync_same_month_updates_inventory_date_only()", "file_type": "code", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_test_sync_cross_month_repoints_purchase_plan", "label": "test_sync_cross_month_repoints_purchase_plan()", "file_type": "code", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L133"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_test_sync_skips_when_weighing_exists", "label": "test_sync_skips_when_weighing_exists()", "file_type": "code", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L258"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_rationale_1", "label": "\u8ba1\u5212\u4fdd\u5b58\u65f6\u540c\u6b65\u5730\u78c5\u51fa\u5165\u5e93\u65e5\u671f \u2014 \u5355\u5143\u6d4b\u8bd5", "file_type": "rationale", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "app_models_db_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "app_services_pl_dibang_bridge_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_make_query_router", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_test_sync_same_month_updates_inventory_date_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_dibang_date_sync_on_plan_save.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_dibang_date_sync_on_plan_save_py", "tarLine truncated
@@ -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": "L18"}, {"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": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportstopdibangoption", "label": "TransportStopDibangOption", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L47"}, {"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": "L54"}, {"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": "L89"}, {"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": "L101"}, {"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": "L115"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportdriverproductfeedbackread", "label": "TransportDriverProductFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L139"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportstopfeedbackread", "label": "TransportStopFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L155"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportdriverstopproductfeedbackread", "label": "TransportDriverStopProductFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L169"}, {"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": "L182"}, {"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": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_contractqtyreminderitem", "label": "ContractQtyReminderItem", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L220"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_contractqtyreminder", "label": "ContractQtyReminder", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L235"}, {"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": "L240"}, {"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": "L254"}, {"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": "L266"}, {"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": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportproductfeedbackitem", "label": "PublicTransportProductFeedbackItem", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L284"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportfeedback", "labLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "label": "test_pl_plan_single_contract_rules.py", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "label": "test_assert_at_most_one_contract_allows_zero_or_one()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L8"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "label": "test_assert_at_most_one_contract_rejects_two()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L14"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "app_schemas_pl_plan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "app_services_pl_plan_stop_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L14", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "callee": "assert_at_most_one_contract", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L9", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "callee": "PlanContractLink", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L10", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "callee": "assert_at_most_one_contract", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L11", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "callee": "PlanContractLink", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L16", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "callee": "PlanContractLink", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L17", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "callee": "raises",Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "label": "pl_plan_stop_service.py", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contract_link", "label": "_contract_link()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L47"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_attach_stop_brand_qtys", "label": "_attach_stop_brand_qtys()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L55"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_list_product_name", "label": "_resolve_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_apply_stop_list_product_name", "label": "_apply_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_product", "label": "_load_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L99"}, {"id": "plplanloadproduct", "label": "PlPlanLoadProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_delivery_stop_product", "label": "_delivery_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L118"}, {"id": "plplandeliveryproduct", "label": "PlPlanDeliveryProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_contract_rows_grouped", "label": "load_stop_contract_rows_grouped()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L137"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contracts_for_stop", "label": "_contracts_for_stop()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L160"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_to_decimal", "label": "_to_decimal()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L175"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_address_from_library", "label": "resolve_stop_address_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L184"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_enrich_stop_addresses_from_library", "label": "enrich_stop_addresses_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L225"}, {"id": "planloadbody", "label": "PlanLoadBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plandeliverybody", "label": "PlanDeliveryBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/apLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_py", "label": "pl_contract_plan_qty.py", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_to_float", "label": "_to_float()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_bucket_for_plan", "label": "_bucket_for_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_merge_product_qty_maps", "label": "merge_product_qty_maps()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_accumulate_stop_products", "label": "accumulate_stop_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L72"}, {"id": "defaultdict", "label": "DefaultDict", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_resolve_linked_plan_scopes", "label": "resolve_linked_plan_scopes()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L85"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_sum_qtys_for_scope", "label": "sum_qtys_for_scope()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L142"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_aggregate_contract_product_plan_qtys", "label": "aggregate_contract_product_plan_qtys()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L182"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_attach_plan_qty_fields_to_products", "label": "attach_plan_qty_fields_to_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L314"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_plan_ids_linked_to_contract", "label": "plan_ids_linked_to_contract()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_contract_ids_linked_to_plan", "label": "contract_ids_linked_to_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L368"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_auto_start_execute_approved_contracts", "label": "auto_start_execute_approved_contracts()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_effective_arranged_total", "label": "effective_arranged_total()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L431"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_contract_product_has_fixed_qty", "label": "contract_product_has_fixed_qty()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L444"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_evaluate_product_qty_for_arrange", "label": "evaluate_product_qty_for_arrange()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L459"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_py", "label": "transport.py", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_transport_to_read", "label": "_transport_to_read()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L90"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/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/transport.py"}, {"id": "transportread", "label": "TransportRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_generate_transport_no", "label": "_generate_transport_no()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L222"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_resolve_driver_info", "label": "_resolve_driver_info()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L246"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_get_vehicle_info", "label": "_get_vehicle_info()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L284"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_assert_vehicle_carrier_eligible", "label": "_assert_vehicle_carrier_eligible()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L334"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_ensure_driver_access_token", "label": "_ensure_driver_access_token()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L369"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_rotate_driver_access_token", "label": "_rotate_driver_access_token()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L377"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_is_rearrange", "label": "_is_rearrange()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L383"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_transport_has_db_links", "label": "_transport_has_db_links()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L394"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_apply_plan_logistics_from_payload", "label": "_apply_plan_logistics_from_payload()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L407"}, {"id": "transportarrange", "label": "TransportArrange", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_resolve_transport_endpoints", "label": "_resolve_transport_endpoints()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L436"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_apply_transport_arrange_fields", "label": "_apply_transport_arrange_fields()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L451"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_build_driver_url", "label": "_build_driver_url()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L485"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_build_arrange_result", "label": "_build_arrange_result()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L490"}, {"id": "transportsitelinkread", "label": "TransportSiteLinkRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "transportinventorylinkread", "label": "TransportInventoryLinkRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "transportioorderbrief", "label": "TransportIoOrderBrief", "file_type": "code", "source_file": "", "source_location": "", "origLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_py", "label": "pl_dibang_bridge_service.py", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_dibanginventorylinkresult", "label": "DibangInventoryLinkResult", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_stopdibangoption", "label": "StopDibangOption", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_stopdibangproduct", "label": "_StopDibangProduct", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L54"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_resolve_partner_company", "label": "resolve_partner_company()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L63"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_normalize_to_date", "label": "_normalize_to_date()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L76"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_normalize_plan_date", "label": "_normalize_plan_date()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L88"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_resolve_dibang_date", "label": "_resolve_dibang_date()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L100"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_month_range", "label": "_month_range()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L111"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_plan_type_to_business_type", "label": "_plan_type_to_business_type()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L118"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_direction_to_business_type", "label": "_direction_to_business_type()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L126"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_resolve_stop_business_type", "label": "_resolve_stop_business_type()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L135"}, {"id": "plplanload", "label": "PlPlanLoad", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "plplandelivery", "label": "PlPlanDelivery", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_resolve_stop_dibang_partner", "label": "resolve_stop_dibang_partner()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L148"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_stop_product_quantity", "label": "_stop_product_quantity()", "file_type": "code", "source_file": "app/services/pl_dibang_bridge_service.py", "source_location": "L161"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_dibang_bridge_service_plan_has_load_stop", "Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_py", "label": "transport.py", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_transport_to_read", "label": "_transport_to_read()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L90"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/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/transport.py"}, {"id": "transportread", "label": "TransportRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_generate_transport_no", "label": "_generate_transport_no()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L222"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_resolve_driver_info", "label": "_resolve_driver_info()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L246"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_get_vehicle_info", "label": "_get_vehicle_info()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L284"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_assert_vehicle_carrier_eligible", "label": "_assert_vehicle_carrier_eligible()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L334"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_ensure_driver_access_token", "label": "_ensure_driver_access_token()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L369"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_rotate_driver_access_token", "label": "_rotate_driver_access_token()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L377"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_is_rearrange", "label": "_is_rearrange()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L383"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_transport_has_db_links", "label": "_transport_has_db_links()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L394"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_apply_plan_logistics_from_payload", "label": "_apply_plan_logistics_from_payload()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L407"}, {"id": "transportarrange", "label": "TransportArrange", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_resolve_transport_endpoints", "label": "_resolve_transport_endpoints()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L436"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_apply_transport_arrange_fields", "label": "_apply_transport_arrange_fields()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L451"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_build_driver_url", "label": "_build_driver_url()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L485"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_build_arrange_result", "label": "_build_arrange_result()", "file_type": "code", "source_file": "app/api/pl/transport.py", "source_location": "L490"}, {"id": "transportsitelinkread", "label": "TransportSiteLinkRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "transportinventorylinkread", "label": "TransportInventoryLinkRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport.py"}, {"id": "transportioorderbrief", "label": "TransportIoOrderBrief", "file_type": "code", "source_file": "", "source_location": "", "origLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_py", "label": "pl_plan_contract_gap.py", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_stop_contract_gap", "label": "stop_contract_gap()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_side_is_exempt", "label": "side_is_exempt()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_compute_contract_gap_sides", "label": "compute_contract_gap_sides()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_compute_plan_gap_sides_from_stops", "label": "compute_plan_gap_sides_from_stops()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L71"}, {"id": "planloadread", "label": "PlanLoadRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plandeliveryread", "label": "PlanDeliveryRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_stop_contract_exists", "label": "_stop_contract_exists()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L105"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_load_stop_gap_expr", "label": "_load_stop_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_delivery_stop_gap_expr", "label": "_delivery_stop_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L145"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_legacy_supplier_gap_expr", "label": "_legacy_supplier_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L168"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_legacy_demander_gap_expr", "label": "_legacy_demander_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L194"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_plan_has_contract_gap_exists", "label": "plan_has_contract_gap_exists()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L220"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_supplier_gap_expr", "label": "_supplier_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L230"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_demander_gap_expr", "label": "_demander_gap_expr()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L234"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_build_plan_contract_gap_read", "label": "build_plan_contract_gap_read()", "file_type": "code", "source_file": "app/services/pl_plan_contract_gap.py", "source_location": "L238"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "planproductread", "label": "PlanProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plancontractgapread", "label": "PlanContractGapRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_load_products_by_plan_ids", "label": "_load_productsLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_py", "label": "pl_contract_plan_qty.py", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_to_float", "label": "_to_float()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_bucket_for_plan", "label": "_bucket_for_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_merge_product_qty_maps", "label": "merge_product_qty_maps()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_accumulate_stop_products", "label": "accumulate_stop_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L72"}, {"id": "defaultdict", "label": "DefaultDict", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_resolve_linked_plan_scopes", "label": "resolve_linked_plan_scopes()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L85"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_sum_qtys_for_scope", "label": "sum_qtys_for_scope()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L142"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_aggregate_contract_product_plan_qtys", "label": "aggregate_contract_product_plan_qtys()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L182"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_attach_plan_qty_fields_to_products", "label": "attach_plan_qty_fields_to_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L314"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_plan_ids_linked_to_contract", "label": "plan_ids_linked_to_contract()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_contract_ids_linked_to_plan", "label": "contract_ids_linked_to_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L368"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_auto_start_execute_approved_contracts", "label": "auto_start_execute_approved_contracts()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_effective_arranged_total", "label": "effective_arranged_total()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L431"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_contract_product_has_fixed_qty", "label": "contract_product_has_fixed_qty()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L444"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_evaluate_product_qty_for_arrange", "label": "evaluate_product_qty_for_arrange()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L459"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_py", "label": "pl_contract_plan_qty.py", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_to_float", "label": "_to_float()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_bucket_for_plan", "label": "_bucket_for_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_merge_product_qty_maps", "label": "merge_product_qty_maps()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_accumulate_stop_products", "label": "accumulate_stop_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L72"}, {"id": "defaultdict", "label": "DefaultDict", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_resolve_linked_plan_scopes", "label": "resolve_linked_plan_scopes()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L85"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_sum_qtys_for_scope", "label": "sum_qtys_for_scope()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L142"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_aggregate_contract_product_plan_qtys", "label": "aggregate_contract_product_plan_qtys()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L182"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_attach_plan_qty_fields_to_products", "label": "attach_plan_qty_fields_to_products()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L314"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_plan_ids_linked_to_contract", "label": "plan_ids_linked_to_contract()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_contract_ids_linked_to_plan", "label": "contract_ids_linked_to_plan()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L368"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_contract_plan_qty.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_auto_start_execute_approved_contracts", "label": "auto_start_execute_approved_contracts()", "file_type": "code", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L392"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_rationale_39", "label": "\u8fd4\u56de 'archived' | 'arranged_unarchived' | None\uff08\u4e0d\u8ba1\u5165\uff09\u3002", "file_type": "rationale", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L39"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_rationale_58", "label": "product_id -> {archivedQty, arrangedUnarchivedQty, arrangedTotalQty}", "file_type": "rationale", "source_file": "app/services/pl_contract_plan_qty.py", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_contract_plan_qty_rationale_89", "label": "plan_id -> { load_ids: set[str] | None, # None = \u8be5\u4fa7\u5168\u90e8\u88c5\u8d27\u6bb5 delivery_", "file_type": "rationale", "sourceLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "label": "pl_plan_stop_service.py", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contract_link", "label": "_contract_link()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L47"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_attach_stop_brand_qtys", "label": "_attach_stop_brand_qtys()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L55"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_list_product_name", "label": "_resolve_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_apply_stop_list_product_name", "label": "_apply_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_product", "label": "_load_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L99"}, {"id": "plplanloadproduct", "label": "PlPlanLoadProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_delivery_stop_product", "label": "_delivery_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L118"}, {"id": "plplandeliveryproduct", "label": "PlPlanDeliveryProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_contract_rows_grouped", "label": "load_stop_contract_rows_grouped()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L137"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contracts_for_stop", "label": "_contracts_for_stop()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L160"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_to_decimal", "label": "_to_decimal()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L175"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_address_from_library", "label": "resolve_stop_address_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L184"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_enrich_stop_addresses_from_library", "label": "enrich_stop_addresses_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L225"}, {"id": "planloadbody", "label": "PlanLoadBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plandeliverybody", "label": "PlanDeliveryBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/apLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_py", "label": "plan.py", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_list_product_name", "label": "_resolve_list_product_name()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L154"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_create_date", "label": "_resolve_create_date()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L170"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L174"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_format_subpack_slip_no", "label": "_format_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L206"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_normalize_subpack_slip_no", "label": "_normalize_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_subpack_slip_no_seq", "label": "_subpack_slip_no_seq()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_ensure_subpack_slip_no", "label": "_ensure_subpack_slip_no()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L243"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_determine_plan_type", "label": "_determine_plan_type()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_get_plan_type_label", "label": "_get_plan_type_label()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L280"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_notify_message", "label": "_generate_notify_message()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L289"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_product_name_exists", "label": "_plan_product_name_exists()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L309"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_plate_match", "label": "_plan_plate_match()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L323"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_parse_status_csv", "label": "_parse_status_csv()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_follow_status_filter", "label": "_apply_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L338"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_exclude_follow_status_filter", "label": "_apply_exclude_follow_status_filter()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L347"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "app/api/pl/plan.py", "source_location": "L357"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "planlistresponse", "label": "PlanListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_load_transports_by_id", "label": "_load_transports_by_id()", "file_type": "code", "source_file": "app/api/pl/plan.py", "Line truncated
@@ -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": "L18"}, {"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": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportstopdibangoption", "label": "TransportStopDibangOption", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L47"}, {"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": "L54"}, {"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": "L89"}, {"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": "L101"}, {"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": "L115"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportdriverproductfeedbackread", "label": "TransportDriverProductFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L139"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportstopfeedbackread", "label": "TransportStopFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L155"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_transportdriverstopproductfeedbackread", "label": "TransportDriverStopProductFeedbackRead", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L169"}, {"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": "L182"}, {"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": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_contractqtyreminderitem", "label": "ContractQtyReminderItem", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L220"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_contractqtyreminder", "label": "ContractQtyReminder", "file_type": "code", "source_file": "app/schemas/pl/transport.py", "source_location": "L238"}, {"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": "L243"}, {"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": "L257"}, {"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": "L269"}, {"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": "L278"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_transport_publictransportproductfeedbackitem", "label": "PublicTransportProductFeedbackItem", "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_publictransportfeedback", "labLine truncated