| 1 |
- {"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "label": "pl_plan_stop_service.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "services_pl_plan_stop_service_contract_link", "label": "_contract_link()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L47"}, {"id": "services_pl_plan_stop_service_attach_stop_brand_qtys", "label": "_attach_stop_brand_qtys()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L55"}, {"id": "services_pl_plan_stop_service_resolve_stop_list_product_name", "label": "_resolve_stop_list_product_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L67"}, {"id": "services_pl_plan_stop_service_apply_stop_list_product_name", "label": "_apply_stop_list_product_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L84"}, {"id": "services_pl_plan_stop_service_load_stop_product", "label": "_load_stop_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L99"}, {"id": "services_pl_plan_stop_service_delivery_stop_product", "label": "_delivery_stop_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L118"}, {"id": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "label": "load_stop_contract_rows_grouped()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L137"}, {"id": "services_pl_plan_stop_service_contracts_for_stop", "label": "_contracts_for_stop()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L160"}, {"id": "services_pl_plan_stop_service_to_decimal", "label": "_to_decimal()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L175"}, {"id": "services_pl_plan_stop_service_resolve_stop_address_from_library", "label": "resolve_stop_address_from_library()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L184"}, {"id": "services_pl_plan_stop_service_enrich_stop_addresses_from_library", "label": "enrich_stop_addresses_from_library()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L225"}, {"id": "services_pl_plan_stop_service_load_plan_stops_grouped", "label": "load_plan_stops_grouped()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L244"}, {"id": "services_pl_plan_stop_service_resolve_load_customer_name", "label": "resolve_load_customer_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L406"}, {"id": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "label": "resolve_delivery_customer_summary()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L416"}, {"id": "services_pl_plan_stop_service_attach_plan_stops_to_item", "label": "attach_plan_stops_to_item()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L437"}, {"id": "services_pl_plan_stop_service_uses_multi_stop_payload", "label": "uses_multi_stop_payload()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L453"}, {"id": "services_pl_plan_stop_service_normalize_contract_links", "label": "_normalize_contract_links()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L457"}, {"id": "services_pl_plan_stop_service_assert_at_most_one_contract", "label": "assert_at_most_one_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L471"}, {"id": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "label": "_assert_product_rows_in_contract_allowed()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L483"}, {"id": "services_pl_plan_stop_service_contract_allowed_product_ids", "label": "_contract_allowed_product_ids()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L499"}, {"id": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "label": "assert_load_products_in_selected_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L516"}, {"id": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "label": "assert_delivery_products_in_selected_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L535"}, {"id": "services_pl_plan_stop_service_assert_stop_contract_required", "label": "assert_stop_contract_required()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L557"}, {"id": "services_pl_plan_stop_service_resolve_stop_contracts", "label": "_resolve_stop_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L569"}, {"id": "services_pl_plan_stop_service_validate_plan_stops_write", "label": "validate_plan_stops_write()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L601"}, {"id": "services_pl_plan_stop_service_collect_stop_qty_warnings", "label": "collect_stop_qty_warnings()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L650"}, {"id": "services_pl_plan_stop_service_sync_plan_legacy_from_stops", "label": "sync_plan_legacy_from_stops()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L663"}, {"id": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "label": "_soft_delete_load_products_and_stop_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L690"}, {"id": "services_pl_plan_stop_service_soft_delete_delivery_products", "label": "_soft_delete_delivery_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L724"}, {"id": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "label": "resolve_delivery_id_for_upsert()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L738"}, {"id": "services_pl_plan_stop_service_write_stop_contracts", "label": "_write_stop_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L753"}, {"id": "services_pl_plan_stop_service_resolve_plan_product_id", "label": "_resolve_plan_product_id()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L789"}, {"id": "services_pl_plan_stop_service_resolve_or_create_plan_load", "label": "_resolve_or_create_plan_load()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L814"}, {"id": "services_pl_plan_stop_service_replace_plan_stops", "label": "replace_plan_stops()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L885"}, {"id": "services_pl_plan_stop_service_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u88c5\u8d27/\u9001\u8d27\u6bb5\u8bfb\u53d6\u4e0e\u5217\u8868\u6458\u8981\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "services_pl_plan_stop_service_rationale_74", "label": "\u5217\u8868\u5c55\u793a\u7528\uff1a\u4f18\u5148 CRM \u6807\u51c6\u540d\uff0c\u4e0d\u5c55\u793a\u522b\u540d\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L74"}, {"id": "services_pl_plan_stop_service_rationale_191", "label": "\u6bb5 address \u4e3a\u7a7a\u65f6\uff0c\u6309\u7ecf\u7eac\u5ea6\u4ece\u8fd0\u8f93\u5730\u5740\u5e93\u8865\u5168 full_address\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L191"}, {"id": "services_pl_plan_stop_service_rationale_249", "label": "\u6279\u91cf\u8bfb\u53d6\u88c5\u8d27\u6bb5\u4e0e\u9001\u8d27\u6bb5\uff08\u5217\u8868/\u8be6\u60c5\u5171\u7528\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L249"}, {"id": "services_pl_plan_stop_service_rationale_562", "label": "\u975e\u5185\u90e8\u5ba2\u6237\u88c5/\u9001\u8d27\u6bb5\u4fdd\u5b58\u65f6\u5fc5\u987b\u81f3\u5c11\u9009\u4e00\u4efd\u5408\u540c\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L562"}, {"id": "services_pl_plan_stop_service_rationale_696", "label": "\u8f6f\u5220\u88c5\u8d27\u4ea7\u54c1\u4e0e\u88c5/\u9001\u8d27\u6bb5\u5408\u540c\uff1b\u9001\u8d27\u6bb5\u672c\u4f53\u7531 upsert \u4fdd\u7559\u4e3b\u952e\uff0c\u4e0d\u5728\u6b64\u5168\u91cf\u8f6f\u5220\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L696"}, {"id": "services_pl_plan_stop_service_rationale_823", "label": "\u88c5\u8d27\u6bb5\u4e0e plan 1:1\uff1buk_pl_plan_load_plan \u4ec5\u6309 plan_id \u552f\u4e00\uff0c\u8f6f\u5220\u540e\u4e0d\u53ef\u518d INSERT\uff0c\u987b\u539f\u5730\u66f4\u65b0\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L823"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "collections", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L14", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_schemas_pl_plan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L23", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_services_pl_brand_archive", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L33", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_services_pl_internal_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L34", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_services_pl_plan_stop_rules", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L35", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_services_pl_plan_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L36", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "app_services_pl_product_display", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L41", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_contract_link", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L47", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_attach_stop_brand_qtys", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L55", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_stop_list_product_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L67", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_apply_stop_list_product_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L84", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_load_stop_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L99", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_delivery_stop_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L118", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L137", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_contracts_for_stop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L160", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_to_decimal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L175", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_stop_address_from_library", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L184", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_enrich_stop_addresses_from_library", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L225", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_load_plan_stops_grouped", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L244", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_load_customer_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L406", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L416", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_attach_plan_stops_to_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L437", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_uses_multi_stop_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L453", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_normalize_contract_links", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L457", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_assert_at_most_one_contract", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L471", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L483", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_contract_allowed_product_ids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L499", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L516", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L535", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_assert_stop_contract_required", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L557", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_stop_contracts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L569", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_validate_plan_stops_write", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L601", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_collect_stop_qty_warnings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L650", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_sync_plan_legacy_from_stops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L663", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L690", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_soft_delete_delivery_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L724", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L738", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_write_stop_contracts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L753", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_plan_product_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L789", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_resolve_or_create_plan_load", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L814", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "target": "services_pl_plan_stop_service_replace_plan_stops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L885", "weight": 1.0}, {"source": "services_pl_plan_stop_service_apply_stop_list_product_name", "target": "services_pl_plan_stop_service_resolve_stop_list_product_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L90", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_stop_product", "target": "services_pl_plan_stop_service_apply_stop_list_product_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L108", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_stop_product", "target": "services_pl_plan_stop_service_attach_stop_brand_qtys", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L114", "weight": 1.0}, {"source": "services_pl_plan_stop_service_delivery_stop_product", "target": "services_pl_plan_stop_service_apply_stop_list_product_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L127", "weight": 1.0}, {"source": "services_pl_plan_stop_service_delivery_stop_product", "target": "services_pl_plan_stop_service_attach_stop_brand_qtys", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L133", "weight": 1.0}, {"source": "services_pl_plan_stop_service_contracts_for_stop", "target": "services_pl_plan_stop_service_contract_link", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L165", "weight": 1.0}, {"source": "services_pl_plan_stop_service_resolve_stop_address_from_library", "target": "services_pl_plan_stop_service_to_decimal", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L195", "weight": 1.0}, {"source": "services_pl_plan_stop_service_enrich_stop_addresses_from_library", "target": "services_pl_plan_stop_service_resolve_stop_address_from_library", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L231", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_plan_stops_grouped", "target": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L330", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_plan_stops_grouped", "target": "services_pl_plan_stop_service_resolve_stop_address_from_library", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L339", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_plan_stops_grouped", "target": "services_pl_plan_stop_service_load_stop_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L349", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_plan_stops_grouped", "target": "services_pl_plan_stop_service_contracts_for_stop", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L357", "weight": 1.0}, {"source": "services_pl_plan_stop_service_load_plan_stops_grouped", "target": "services_pl_plan_stop_service_delivery_stop_product", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L377", "weight": 1.0}, {"source": "services_pl_plan_stop_service_attach_plan_stops_to_item", "target": "services_pl_plan_stop_service_resolve_load_customer_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L445", "weight": 1.0}, {"source": "services_pl_plan_stop_service_attach_plan_stops_to_item", "target": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L446", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "target": "services_pl_plan_stop_service_normalize_contract_links", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L524", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "target": "services_pl_plan_stop_service_contract_allowed_product_ids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L530", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "target": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L531", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "target": "services_pl_plan_stop_service_normalize_contract_links", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L543", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "target": "services_pl_plan_stop_service_contract_allowed_product_ids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L549", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "target": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L550", "weight": 1.0}, {"source": "services_pl_plan_stop_service_assert_stop_contract_required", "target": "services_pl_plan_stop_service_normalize_contract_links", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L565", "weight": 1.0}, {"source": "services_pl_plan_stop_service_resolve_stop_contracts", "target": "services_pl_plan_stop_service_normalize_contract_links", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L579", "weight": 1.0}, {"source": "services_pl_plan_stop_service_resolve_stop_contracts", "target": "services_pl_plan_stop_service_assert_at_most_one_contract", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L580", "weight": 1.0}, {"source": "services_pl_plan_stop_service_validate_plan_stops_write", "target": "services_pl_plan_stop_service_assert_stop_contract_required", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L617", "weight": 1.0}, {"source": "services_pl_plan_stop_service_validate_plan_stops_write", "target": "services_pl_plan_stop_service_resolve_stop_contracts", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L619", "weight": 1.0}, {"source": "services_pl_plan_stop_service_validate_plan_stops_write", "target": "services_pl_plan_stop_service_enrich_stop_addresses_from_library", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L643", "weight": 1.0}, {"source": "services_pl_plan_stop_service_validate_plan_stops_write", "target": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L644", "weight": 1.0}, {"source": "services_pl_plan_stop_service_validate_plan_stops_write", "target": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L646", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L895", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_resolve_or_create_plan_load", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L898", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_resolve_plan_product_id", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L911", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_write_stop_contracts", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L939", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L970", "weight": 1.0}, {"source": "services_pl_plan_stop_service_replace_plan_stops", "target": "services_pl_plan_stop_service_soft_delete_delivery_products", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1020", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_74", "target": "services_pl_plan_stop_service_resolve_stop_list_product_name", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L74", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_191", "target": "services_pl_plan_stop_service_resolve_stop_address_from_library", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L191", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_249", "target": "services_pl_plan_stop_service_load_plan_stops_grouped", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L249", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_562", "target": "services_pl_plan_stop_service_assert_stop_contract_required", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L562", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_696", "target": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L696", "weight": 1.0}, {"source": "services_pl_plan_stop_service_rationale_823", "target": "services_pl_plan_stop_service_resolve_or_create_plan_load", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L823", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_pl_plan_stop_service_contract_link", "callee": "PlanContractLink", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L48"}, {"caller_nid": "services_pl_plan_stop_service_attach_stop_brand_qtys", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L59"}, {"caller_nid": "services_pl_plan_stop_service_attach_stop_brand_qtys", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L61"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_list_product_name", "callee": "resolve_product_display_names", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L75"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_product", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L106"}, {"caller_nid": "services_pl_plan_stop_service_delivery_stop_product", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L125"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L145"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L145"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L145"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L145"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L148"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L151"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L151"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "defaultdict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L154"}, {"caller_nid": "services_pl_plan_stop_service_load_stop_contract_rows_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L156"}, {"caller_nid": "services_pl_plan_stop_service_contracts_for_stop", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L171"}, {"caller_nid": "services_pl_plan_stop_service_to_decimal", "callee": "Decimal", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L179"}, {"caller_nid": "services_pl_plan_stop_service_to_decimal", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L179"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L192"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L200"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L200"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L206"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L208"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L209"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L209"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L209"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L212"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L213"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L218"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_address_from_library", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L221"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L254"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L254"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L254"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L257"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "defaultdict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L265"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L268"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L271"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L274"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L274"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L277"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L280"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L280"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L280"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L280"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L283"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L286"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L286"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "defaultdict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L289"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L292"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L293"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "defaultdict", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L295"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L298"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L298"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L298"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L298"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L301"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L304"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L304"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L307"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L310"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "values", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L311"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L314"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L315"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L316"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L316"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "values", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L317"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L320"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L321"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L322"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L322"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "load_brand_qtys_by_stop_product_ids", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L323"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "load_crm_product_alias_maps", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L326"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L334"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L335"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L338"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L355"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L364"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L365"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "model_validate", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L366"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L383"}, {"caller_nid": "services_pl_plan_stop_service_load_plan_stops_grouped", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L399"}, {"caller_nid": "services_pl_plan_stop_service_resolve_load_customer_name", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L410"}, {"caller_nid": "services_pl_plan_stop_service_resolve_load_customer_name", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L411"}, {"caller_nid": "services_pl_plan_stop_service_resolve_load_customer_name", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L412"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L421"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L423"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L425"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L426"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L429"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "join", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L430"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L431"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_customer_summary", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L433"}, {"caller_nid": "services_pl_plan_stop_service_attach_plan_stops_to_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L447"}, {"caller_nid": "services_pl_plan_stop_service_attach_plan_stops_to_item", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L449"}, {"caller_nid": "services_pl_plan_stop_service_normalize_contract_links", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L460"}, {"caller_nid": "services_pl_plan_stop_service_normalize_contract_links", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L463"}, {"caller_nid": "services_pl_plan_stop_service_normalize_contract_links", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L466"}, {"caller_nid": "services_pl_plan_stop_service_normalize_contract_links", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L467"}, {"caller_nid": "services_pl_plan_stop_service_assert_at_most_one_contract", "callee": "len", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L475"}, {"caller_nid": "services_pl_plan_stop_service_assert_at_most_one_contract", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L476"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L490"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L490"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L490"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L491"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L491"}, {"caller_nid": "services_pl_plan_stop_service_assert_product_rows_in_contract_allowed", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L493"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L501"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L501"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L501"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L510"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L510"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L512"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L512"}, {"caller_nid": "services_pl_plan_stop_service_contract_allowed_product_ids", "callee": "str", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L512"}, {"caller_nid": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "callee": "is_internal_customer_name", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L522"}, {"caller_nid": "services_pl_plan_stop_service_assert_load_products_in_selected_contract", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L527"}, {"caller_nid": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "callee": "is_internal_customer_name", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L541"}, {"caller_nid": "services_pl_plan_stop_service_assert_delivery_products_in_selected_contract", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L546"}, {"caller_nid": "services_pl_plan_stop_service_assert_stop_contract_required", "callee": "is_internal_customer_name", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L563"}, {"caller_nid": "services_pl_plan_stop_service_assert_stop_contract_required", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L566"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_contracts", "callee": "is_internal_customer_name", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L577"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_contracts", "callee": "assert_contract_selectable_for_plan", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L585"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_contracts", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L592"}, {"caller_nid": "services_pl_plan_stop_service_resolve_stop_contracts", "callee": "PlanContractLink", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L593"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L609"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L610"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L610"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L611"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L613"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L615"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L629"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L630"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L630"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L631"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "append", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L641"}, {"caller_nid": "services_pl_plan_stop_service_validate_plan_stops_write", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L645"}, {"caller_nid": "services_pl_plan_stop_service_collect_stop_qty_warnings", "callee": "extend", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L659"}, {"caller_nid": "services_pl_plan_stop_service_collect_stop_qty_warnings", "callee": "warn_qty_imbalance", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L660"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L697"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L700"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L700"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L700"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "update", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L709"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L709"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L709"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L710"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "update", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L714"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L714"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L714"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_load_products_and_stop_contracts", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L718"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_delivery_products", "callee": "update", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L732"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_delivery_products", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L732"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_delivery_products", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L732"}, {"caller_nid": "services_pl_plan_stop_service_soft_delete_delivery_products", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L733"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L744"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L746"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L747"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "callee": "getattr", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L748"}, {"caller_nid": "services_pl_plan_stop_service_resolve_delivery_id_for_upsert", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L749"}, {"caller_nid": "services_pl_plan_stop_service_write_stop_contracts", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L764"}, {"caller_nid": "services_pl_plan_stop_service_write_stop_contracts", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L768"}, {"caller_nid": "services_pl_plan_stop_service_write_stop_contracts", "callee": "PlPlanContract", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L769"}, {"caller_nid": "services_pl_plan_stop_service_write_stop_contracts", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L770"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L793"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L798"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L801"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L803"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L806"}, {"caller_nid": "services_pl_plan_stop_service_resolve_plan_product_id", "callee": "HTTPException", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L808"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "normalize_stop_dibang_fields", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L824"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "first", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L832"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "order_by", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L832"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L832"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L832"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "asc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L837"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "desc", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L837"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L857"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L858"}, {"caller_nid": "services_pl_plan_stop_service_resolve_or_create_plan_load", "callee": "PlPlanLoad", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L859"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "now", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L896"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L910"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L912"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "PlPlanLoadProduct", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L913"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L914"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "all", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L952"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L952"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L952"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "set", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L960"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "normalize_stop_dibang_fields", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L963"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L975"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L994"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "PlPlanDelivery", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L995"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "enumerate", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1022"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "add", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1024"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "PlPlanDeliveryProduct", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1025"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "generate_uuid", "is_member_call": false, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1026"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "update", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1065"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "filter", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1065"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "query", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1065"}, {"caller_nid": "services_pl_plan_stop_service_replace_plan_stops", "callee": "in_", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py", "source_location": "L1066"}]}
|