提交
This commit is contained in:
1 parent
506cc7991a
commit
1dfcc66d2c
269 files changed
+1413333
-55990
No files matched your search
@@ -0,0 +1 @@
|
||||
22475
|
||||
@@ -1322,14 +1322,18 @@ def create_contract(
|
||||
return get_contract_detail(db, entity.id, tenant_no=tenant_no)
|
||||
|
||||
|
||||
# 允许编辑的合同状态:草稿 / 审批中 / 已审批(未执行);保存后统一回草稿
|
||||
CONTRACT_EDITABLE_STATUSES = frozenset({"draft", "approving", "approved"})
|
||||
# 禁止再编辑的合同状态:仅已完成;其余状态可编辑,保存后统一回草稿
|
||||
CONTRACT_NON_EDITABLE_STATUSES = frozenset({"finished"})
|
||||
# 兼容旧测试/引用:可编辑 = 非已完成(含草稿 / 审批中 / 已审批 / 执行中 / 已作废)
|
||||
CONTRACT_EDITABLE_STATUSES = frozenset(
|
||||
{"draft", "approving", "approved", "executing", "invalid"}
|
||||
)
|
||||
|
||||
|
||||
def assert_contract_editable_for_update(status: str) -> None:
|
||||
s = (status or "").strip() or "draft"
|
||||
if s not in CONTRACT_EDITABLE_STATUSES:
|
||||
raise ValueError("仅草稿、审批中或已审批(未执行)的合同才能修改")
|
||||
if s in CONTRACT_NON_EDITABLE_STATUSES:
|
||||
raise ValueError("已完成的合同不能修改")
|
||||
|
||||
|
||||
def update_contract(
|
||||
@@ -1370,7 +1374,7 @@ def update_contract(
|
||||
old, data, db=db, tenant_no=tenant_no, user_id=user_id, is_create=False
|
||||
)
|
||||
|
||||
# 编辑保存后统一回草稿(含审批中 / 已审批未执行)
|
||||
# 编辑保存后统一回草稿(含审批中 / 已审批 / 执行中 / 已作废)
|
||||
old.status = "draft"
|
||||
old.approval_status = None
|
||||
|
||||
|
||||
@@ -162,7 +162,13 @@
|
||||
"160": "get_client_ip",
|
||||
"161": "context.py",
|
||||
"162": ".to_tenant_user_dict",
|
||||
"163": "LocalStorage",
|
||||
"164": "_FakeQuery",
|
||||
"165": "list_duty_staff_users",
|
||||
"166": "code:block1 (/iflytek/shanxia2.0/backend)",
|
||||
"167": "SoftDeleteModel",
|
||||
"168": "ContractListQuery",
|
||||
"169": "__init__.py",
|
||||
"173": "resolve_create_time_bounds",
|
||||
"179": "test_pl_vehicle_personnel_photo_schema.py",
|
||||
"206": "crm_quote_pdf.py",
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
{
|
||||
"0": "Community 0",
|
||||
"1": "Community 1",
|
||||
"2": "Community 2",
|
||||
"3": "Community 3",
|
||||
"4": "Community 4",
|
||||
"5": "Community 5",
|
||||
"6": "Community 6",
|
||||
"7": "Community 7",
|
||||
"8": "Community 8",
|
||||
"9": "Community 9",
|
||||
"10": "Community 10",
|
||||
"11": "Community 11",
|
||||
"12": "Community 12",
|
||||
"13": "Community 13",
|
||||
"14": "Community 14",
|
||||
"15": "Community 15",
|
||||
"16": "Community 16",
|
||||
"17": "Community 17",
|
||||
"18": "Community 18",
|
||||
"19": "Community 19",
|
||||
"20": "Community 20",
|
||||
"21": "Community 21",
|
||||
"22": "Community 22",
|
||||
"23": "Community 23",
|
||||
"24": "Community 24",
|
||||
"25": "Community 25",
|
||||
"26": "Community 26",
|
||||
"27": "Community 27",
|
||||
"28": "Community 28",
|
||||
"29": "Community 29",
|
||||
"30": "Community 30",
|
||||
"31": "Community 31",
|
||||
"32": "Community 32",
|
||||
"33": "Community 33",
|
||||
"34": "Community 34",
|
||||
"35": "Community 35",
|
||||
"36": "Community 36",
|
||||
"37": "Community 37",
|
||||
"38": "Community 38",
|
||||
"39": "Community 39",
|
||||
"40": "Community 40",
|
||||
"41": "Community 41",
|
||||
"42": "Community 42",
|
||||
"43": "Community 43",
|
||||
"44": "Community 44",
|
||||
"45": "Community 45",
|
||||
"46": "Community 46",
|
||||
"47": "Community 47",
|
||||
"48": "Community 48",
|
||||
"49": "Community 49",
|
||||
"50": "Community 50",
|
||||
"51": "Community 51",
|
||||
"52": "Community 52",
|
||||
"53": "Community 53",
|
||||
"54": "Community 54",
|
||||
"55": "Community 55",
|
||||
"56": "Community 56",
|
||||
"57": "Community 57",
|
||||
"58": "Community 58",
|
||||
"59": "Community 59",
|
||||
"60": "Community 60",
|
||||
"61": "Community 61",
|
||||
"62": "Community 62",
|
||||
"63": "Community 63",
|
||||
"64": "Community 64",
|
||||
"65": "Community 65",
|
||||
"66": "Community 66",
|
||||
"67": "Community 67",
|
||||
"68": "Community 68",
|
||||
"69": "Community 69",
|
||||
"70": "Community 70",
|
||||
"71": "Community 71",
|
||||
"72": "Community 72",
|
||||
"73": "Community 73",
|
||||
"74": "Community 74",
|
||||
"75": "apply_crm_create_by_scope",
|
||||
"76": "opportunity_follow.py",
|
||||
"77": "Community 77",
|
||||
"78": "Community 78",
|
||||
"79": "PlCarrier",
|
||||
"80": "resolve_crm_product",
|
||||
"81": "customer_follow.py",
|
||||
"82": "list_duty_staff_users",
|
||||
"83": "Community 83",
|
||||
"84": "Community 84",
|
||||
"85": "allocate_next_biz_no",
|
||||
"86": "Community 86",
|
||||
"87": "list_customers",
|
||||
"88": "CrmProduct",
|
||||
"89": "pl_ocr_service.py",
|
||||
"90": "WechatMessageService",
|
||||
"91": "unsettled_plans_q_filter",
|
||||
"92": "Community 92",
|
||||
"93": "api_request_log_middleware.py",
|
||||
"94": "assert_contract_editable_for_update",
|
||||
"95": "test_pl_public_link_archived.py",
|
||||
"96": "minio_url.py",
|
||||
"97": "contact.py",
|
||||
"98": "LocalStorage",
|
||||
"99": "redis_client.py",
|
||||
"100": "price_letter_detail",
|
||||
"101": "tenant.py",
|
||||
"102": "BaseStorage",
|
||||
"103": "pl_internal_customer.py",
|
||||
"104": "apply_crm_create_by_scope",
|
||||
"105": "pool_customer_assign",
|
||||
"106": "site.py",
|
||||
"107": "apply_pl_scope",
|
||||
"108": "statistics.py",
|
||||
"109": "test_pl_plan_stop_rules.py",
|
||||
"110": "pool_rule.py",
|
||||
"111": "test_pl_public_transport_history.py",
|
||||
"112": "merge_duplicate_crm_customers.py",
|
||||
"113": "dict_type.py",
|
||||
"114": "dept.py",
|
||||
"115": "site.py",
|
||||
"116": "Community 116",
|
||||
"117": "pl_plan_list_attachments.py",
|
||||
"118": "Community 118",
|
||||
"119": "Community 119",
|
||||
"120": "list_duty_staff_users",
|
||||
"121": "_build_user_info_payload",
|
||||
"122": "post.py",
|
||||
"123": "customer_options",
|
||||
"124": "LocalStorage",
|
||||
"125": "ethnic.py",
|
||||
"126": "oper_log.py",
|
||||
"127": "Any",
|
||||
"128": "api_crypto.py",
|
||||
"129": "BaseStorage",
|
||||
"130": "_filter_export_rows_by_ids",
|
||||
"131": "resolve_crm_product",
|
||||
"132": ".to_list_kwargs",
|
||||
"133": "inventory_id.py",
|
||||
"134": "list_contacts",
|
||||
"135": "context.py",
|
||||
"136": "get_db_current_user_optional",
|
||||
"137": "iter_user_menu_perm_codes",
|
||||
"138": "Community 138",
|
||||
"139": "customer_options",
|
||||
"140": "crm_export_columns.py",
|
||||
"141": "web_login_rsa_public_key",
|
||||
"142": "clear_pl_plan_instance_data.py",
|
||||
"143": "create_from_quote",
|
||||
"144": "response.py",
|
||||
"145": "list_products",
|
||||
"146": "dict_data.py",
|
||||
"147": "Community 147",
|
||||
"148": "plan_has_incomplete_hazard_cert_exists",
|
||||
"149": ".to_tenant_user_dict",
|
||||
"150": "list_product_options",
|
||||
"151": "Community 151",
|
||||
"152": "register_local_callback",
|
||||
"153": "web_login_rsa_public_key",
|
||||
"154": "redis_client.py",
|
||||
"155": "WechatMessageService",
|
||||
"156": "list_product_options",
|
||||
"157": "datetime_parse.py",
|
||||
"158": "create_from_quote",
|
||||
"159": "web_login_rsa_public_key",
|
||||
"160": "get_client_ip",
|
||||
"161": "context.py",
|
||||
"162": ".to_tenant_user_dict",
|
||||
"166": "code:block1 (/iflytek/shanxia2.0/backend)",
|
||||
"173": "resolve_create_time_bounds",
|
||||
"179": "test_pl_vehicle_personnel_photo_schema.py",
|
||||
"206": "crm_quote_pdf.py",
|
||||
"207": "shanxia2.0 后端骨架(FastAPI)",
|
||||
"220": "api_crypto_middleware.py",
|
||||
"237": "order_status_compat.py",
|
||||
"239": "shanxia2.0 Backend 生产部署说明",
|
||||
"246": "db_collation.py",
|
||||
"254": "Activate.ps1",
|
||||
"263": "__init__.py",
|
||||
"264": "__init__.py",
|
||||
"304": "__init__.py",
|
||||
"305": "__init__.py",
|
||||
"306": "__init__.py",
|
||||
"307": "__init__.py",
|
||||
"308": "__init__.py",
|
||||
"309": "__init__.py",
|
||||
"310": "__init__.py",
|
||||
"311": "__init__.py",
|
||||
"312": "__init__.py",
|
||||
"495": "code:bash (cd /path/to/shanxia2.0)",
|
||||
"496": "code:bash (./start-prod.sh status # 查看状态)",
|
||||
"497": "code:bash (curl -s http://127.0.0.1:9111/health)",
|
||||
"498": "code:bash (cd /iflytek/shanxia2.0/backend)",
|
||||
"499": "code:bash (python -m venv venv)",
|
||||
"500": "code:bash (pip install -r requirements.txt)",
|
||||
"501": "code:env (# 数据库配置)",
|
||||
"502": "code:bash (uvicorn app.main:app --reload --port 8000)",
|
||||
"503": "BaseModel",
|
||||
"504": "PlanResourceSnapshotMixin"
|
||||
}
|
||||
@@ -0,0 +1,913 @@
|
||||
# Graph Report - backend (2026-08-30)
|
||||
|
||||
## Corpus Check
|
||||
- 367 files · ~260,637 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 5319 nodes · 20121 edges · 194 communities (175 shown, 19 thin omitted)
|
||||
- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 1029 edges (avg confidence: 0.53)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `19c5aaa8`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
- [[_COMMUNITY_Community 0|Community 0]]
|
||||
- [[_COMMUNITY_Community 1|Community 1]]
|
||||
- [[_COMMUNITY_Community 2|Community 2]]
|
||||
- [[_COMMUNITY_Community 3|Community 3]]
|
||||
- [[_COMMUNITY_Community 4|Community 4]]
|
||||
- [[_COMMUNITY_Community 5|Community 5]]
|
||||
- [[_COMMUNITY_Community 6|Community 6]]
|
||||
- [[_COMMUNITY_Community 7|Community 7]]
|
||||
- [[_COMMUNITY_Community 8|Community 8]]
|
||||
- [[_COMMUNITY_Community 9|Community 9]]
|
||||
- [[_COMMUNITY_Community 10|Community 10]]
|
||||
- [[_COMMUNITY_Community 11|Community 11]]
|
||||
- [[_COMMUNITY_Community 12|Community 12]]
|
||||
- [[_COMMUNITY_Community 13|Community 13]]
|
||||
- [[_COMMUNITY_Community 14|Community 14]]
|
||||
- [[_COMMUNITY_Community 15|Community 15]]
|
||||
- [[_COMMUNITY_Community 16|Community 16]]
|
||||
- [[_COMMUNITY_Community 17|Community 17]]
|
||||
- [[_COMMUNITY_Community 18|Community 18]]
|
||||
- [[_COMMUNITY_Community 19|Community 19]]
|
||||
- [[_COMMUNITY_Community 20|Community 20]]
|
||||
- [[_COMMUNITY_Community 21|Community 21]]
|
||||
- [[_COMMUNITY_Community 22|Community 22]]
|
||||
- [[_COMMUNITY_Community 23|Community 23]]
|
||||
- [[_COMMUNITY_Community 24|Community 24]]
|
||||
- [[_COMMUNITY_Community 25|Community 25]]
|
||||
- [[_COMMUNITY_Community 26|Community 26]]
|
||||
- [[_COMMUNITY_Community 27|Community 27]]
|
||||
- [[_COMMUNITY_Community 28|Community 28]]
|
||||
- [[_COMMUNITY_Community 29|Community 29]]
|
||||
- [[_COMMUNITY_Community 30|Community 30]]
|
||||
- [[_COMMUNITY_Community 31|Community 31]]
|
||||
- [[_COMMUNITY_Community 32|Community 32]]
|
||||
- [[_COMMUNITY_Community 33|Community 33]]
|
||||
- [[_COMMUNITY_Community 34|Community 34]]
|
||||
- [[_COMMUNITY_Community 35|Community 35]]
|
||||
- [[_COMMUNITY_Community 36|Community 36]]
|
||||
- [[_COMMUNITY_Community 37|Community 37]]
|
||||
- [[_COMMUNITY_Community 38|Community 38]]
|
||||
- [[_COMMUNITY_Community 39|Community 39]]
|
||||
- [[_COMMUNITY_Community 40|Community 40]]
|
||||
- [[_COMMUNITY_Community 41|Community 41]]
|
||||
- [[_COMMUNITY_Community 42|Community 42]]
|
||||
- [[_COMMUNITY_Community 43|Community 43]]
|
||||
- [[_COMMUNITY_Community 44|Community 44]]
|
||||
- [[_COMMUNITY_Community 45|Community 45]]
|
||||
- [[_COMMUNITY_Community 46|Community 46]]
|
||||
- [[_COMMUNITY_Community 47|Community 47]]
|
||||
- [[_COMMUNITY_Community 48|Community 48]]
|
||||
- [[_COMMUNITY_Community 49|Community 49]]
|
||||
- [[_COMMUNITY_Community 50|Community 50]]
|
||||
- [[_COMMUNITY_Community 51|Community 51]]
|
||||
- [[_COMMUNITY_Community 52|Community 52]]
|
||||
- [[_COMMUNITY_Community 53|Community 53]]
|
||||
- [[_COMMUNITY_Community 54|Community 54]]
|
||||
- [[_COMMUNITY_Community 55|Community 55]]
|
||||
- [[_COMMUNITY_Community 56|Community 56]]
|
||||
- [[_COMMUNITY_Community 57|Community 57]]
|
||||
- [[_COMMUNITY_Community 58|Community 58]]
|
||||
- [[_COMMUNITY_Community 59|Community 59]]
|
||||
- [[_COMMUNITY_Community 60|Community 60]]
|
||||
- [[_COMMUNITY_Community 61|Community 61]]
|
||||
- [[_COMMUNITY_Community 62|Community 62]]
|
||||
- [[_COMMUNITY_Community 63|Community 63]]
|
||||
- [[_COMMUNITY_Community 64|Community 64]]
|
||||
- [[_COMMUNITY_Community 65|Community 65]]
|
||||
- [[_COMMUNITY_Community 66|Community 66]]
|
||||
- [[_COMMUNITY_Community 67|Community 67]]
|
||||
- [[_COMMUNITY_Community 68|Community 68]]
|
||||
- [[_COMMUNITY_Community 69|Community 69]]
|
||||
- [[_COMMUNITY_Community 70|Community 70]]
|
||||
- [[_COMMUNITY_Community 71|Community 71]]
|
||||
- [[_COMMUNITY_Community 72|Community 72]]
|
||||
- [[_COMMUNITY_Community 73|Community 73]]
|
||||
- [[_COMMUNITY_Community 74|Community 74]]
|
||||
- [[_COMMUNITY_apply_crm_create_by_scope|apply_crm_create_by_scope]]
|
||||
- [[_COMMUNITY_opportunity_follow.py|opportunity_follow.py]]
|
||||
- [[_COMMUNITY_Community 77|Community 77]]
|
||||
- [[_COMMUNITY_Community 78|Community 78]]
|
||||
- [[_COMMUNITY_PlCarrier|PlCarrier]]
|
||||
- [[_COMMUNITY_resolve_crm_product|resolve_crm_product]]
|
||||
- [[_COMMUNITY_customer_follow.py|customer_follow.py]]
|
||||
- [[_COMMUNITY_list_duty_staff_users|list_duty_staff_users]]
|
||||
- [[_COMMUNITY_Community 83|Community 83]]
|
||||
- [[_COMMUNITY_Community 84|Community 84]]
|
||||
- [[_COMMUNITY_allocate_next_biz_no|allocate_next_biz_no]]
|
||||
- [[_COMMUNITY_Community 86|Community 86]]
|
||||
- [[_COMMUNITY_list_customers|list_customers]]
|
||||
- [[_COMMUNITY_CrmProduct|CrmProduct]]
|
||||
- [[_COMMUNITY_pl_ocr_service.py|pl_ocr_service.py]]
|
||||
- [[_COMMUNITY_WechatMessageService|WechatMessageService]]
|
||||
- [[_COMMUNITY_unsettled_plans_q_filter|unsettled_plans_q_filter]]
|
||||
- [[_COMMUNITY_Community 92|Community 92]]
|
||||
- [[_COMMUNITY_api_request_log_middleware.py|api_request_log_middleware.py]]
|
||||
- [[_COMMUNITY_assert_contract_editable_for_update|assert_contract_editable_for_update]]
|
||||
- [[_COMMUNITY_test_pl_public_link_archived.py|test_pl_public_link_archived.py]]
|
||||
- [[_COMMUNITY_minio_url.py|minio_url.py]]
|
||||
- [[_COMMUNITY_contact.py|contact.py]]
|
||||
- [[_COMMUNITY_LocalStorage|LocalStorage]]
|
||||
- [[_COMMUNITY_redis_client.py|redis_client.py]]
|
||||
- [[_COMMUNITY_price_letter_detail|price_letter_detail]]
|
||||
- [[_COMMUNITY_tenant.py|tenant.py]]
|
||||
- [[_COMMUNITY_BaseStorage|BaseStorage]]
|
||||
- [[_COMMUNITY_pl_internal_customer.py|pl_internal_customer.py]]
|
||||
- [[_COMMUNITY_apply_crm_create_by_scope|apply_crm_create_by_scope]]
|
||||
- [[_COMMUNITY_pool_customer_assign|pool_customer_assign]]
|
||||
- [[_COMMUNITY_site.py|site.py]]
|
||||
- [[_COMMUNITY_apply_pl_scope|apply_pl_scope]]
|
||||
- [[_COMMUNITY_statistics.py|statistics.py]]
|
||||
- [[_COMMUNITY_test_pl_plan_stop_rules.py|test_pl_plan_stop_rules.py]]
|
||||
- [[_COMMUNITY_pool_rule.py|pool_rule.py]]
|
||||
- [[_COMMUNITY_test_pl_public_transport_history.py|test_pl_public_transport_history.py]]
|
||||
- [[_COMMUNITY_merge_duplicate_crm_customers.py|merge_duplicate_crm_customers.py]]
|
||||
- [[_COMMUNITY_dict_type.py|dict_type.py]]
|
||||
- [[_COMMUNITY_dept.py|dept.py]]
|
||||
- [[_COMMUNITY_site.py|site.py]]
|
||||
- [[_COMMUNITY_Community 116|Community 116]]
|
||||
- [[_COMMUNITY_pl_plan_list_attachments.py|pl_plan_list_attachments.py]]
|
||||
- [[_COMMUNITY_Community 118|Community 118]]
|
||||
- [[_COMMUNITY_Community 119|Community 119]]
|
||||
- [[_COMMUNITY_list_duty_staff_users|list_duty_staff_users]]
|
||||
- [[_COMMUNITY__build_user_info_payload|_build_user_info_payload]]
|
||||
- [[_COMMUNITY_post.py|post.py]]
|
||||
- [[_COMMUNITY_customer_options|customer_options]]
|
||||
- [[_COMMUNITY_LocalStorage|LocalStorage]]
|
||||
- [[_COMMUNITY_ethnic.py|ethnic.py]]
|
||||
- [[_COMMUNITY_oper_log.py|oper_log.py]]
|
||||
- [[_COMMUNITY_Any|Any]]
|
||||
- [[_COMMUNITY_api_crypto.py|api_crypto.py]]
|
||||
- [[_COMMUNITY_BaseStorage|BaseStorage]]
|
||||
- [[_COMMUNITY__filter_export_rows_by_ids|_filter_export_rows_by_ids]]
|
||||
- [[_COMMUNITY_resolve_crm_product|resolve_crm_product]]
|
||||
- [[_COMMUNITY_.to_list_kwargs|.to_list_kwargs]]
|
||||
- [[_COMMUNITY_inventory_id.py|inventory_id.py]]
|
||||
- [[_COMMUNITY_list_contacts|list_contacts]]
|
||||
- [[_COMMUNITY_context.py|context.py]]
|
||||
- [[_COMMUNITY_get_db_current_user_optional|get_db_current_user_optional]]
|
||||
- [[_COMMUNITY_iter_user_menu_perm_codes|iter_user_menu_perm_codes]]
|
||||
- [[_COMMUNITY_Community 138|Community 138]]
|
||||
- [[_COMMUNITY_customer_options|customer_options]]
|
||||
- [[_COMMUNITY_crm_export_columns.py|crm_export_columns.py]]
|
||||
- [[_COMMUNITY_web_login_rsa_public_key|web_login_rsa_public_key]]
|
||||
- [[_COMMUNITY_clear_pl_plan_instance_data.py|clear_pl_plan_instance_data.py]]
|
||||
- [[_COMMUNITY_create_from_quote|create_from_quote]]
|
||||
- [[_COMMUNITY_response.py|response.py]]
|
||||
- [[_COMMUNITY_list_products|list_products]]
|
||||
- [[_COMMUNITY_dict_data.py|dict_data.py]]
|
||||
- [[_COMMUNITY_Community 147|Community 147]]
|
||||
- [[_COMMUNITY_plan_has_incomplete_hazard_cert_exists|plan_has_incomplete_hazard_cert_exists]]
|
||||
- [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]]
|
||||
- [[_COMMUNITY_list_product_options|list_product_options]]
|
||||
- [[_COMMUNITY_Community 151|Community 151]]
|
||||
- [[_COMMUNITY_register_local_callback|register_local_callback]]
|
||||
- [[_COMMUNITY_web_login_rsa_public_key|web_login_rsa_public_key]]
|
||||
- [[_COMMUNITY_redis_client.py|redis_client.py]]
|
||||
- [[_COMMUNITY_WechatMessageService|WechatMessageService]]
|
||||
- [[_COMMUNITY_list_product_options|list_product_options]]
|
||||
- [[_COMMUNITY_datetime_parse.py|datetime_parse.py]]
|
||||
- [[_COMMUNITY_create_from_quote|create_from_quote]]
|
||||
- [[_COMMUNITY_web_login_rsa_public_key|web_login_rsa_public_key]]
|
||||
- [[_COMMUNITY_get_client_ip|get_client_ip]]
|
||||
- [[_COMMUNITY_context.py|context.py]]
|
||||
- [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]]
|
||||
- [[_COMMUNITY_codeblock1 (iflytekshanxia2.0backend)|code:block1 (/iflytek/shanxia2.0/backend)]]
|
||||
- [[_COMMUNITY_resolve_create_time_bounds|resolve_create_time_bounds]]
|
||||
- [[_COMMUNITY_test_pl_vehicle_personnel_photo_schema.py|test_pl_vehicle_personnel_photo_schema.py]]
|
||||
- [[_COMMUNITY_crm_quote_pdf.py|crm_quote_pdf.py]]
|
||||
- [[_COMMUNITY_shanxia2.0 后端骨架(FastAPI)|shanxia2.0 后端骨架(FastAPI)]]
|
||||
- [[_COMMUNITY_api_crypto_middleware.py|api_crypto_middleware.py]]
|
||||
- [[_COMMUNITY_order_status_compat.py|order_status_compat.py]]
|
||||
- [[_COMMUNITY_shanxia2.0 Backend 生产部署说明|shanxia2.0 Backend 生产部署说明]]
|
||||
- [[_COMMUNITY_db_collation.py|db_collation.py]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY_codebash (cd pathtoshanxia2.0)|code:bash (cd /path/to/shanxia2.0)]]
|
||||
- [[_COMMUNITY_codebash (.start-prod.sh status 查看状态)|code:bash (./start-prod.sh status # 查看状态)]]
|
||||
- [[_COMMUNITY_codebash (curl -s http127.0.0.19111health)|code:bash (curl -s http://127.0.0.1:9111/health)]]
|
||||
- [[_COMMUNITY_codebash (cd iflytekshanxia2.0backend)|code:bash (cd /iflytek/shanxia2.0/backend)]]
|
||||
- [[_COMMUNITY_codebash (python -m venv venv)|code:bash (python -m venv venv)]]
|
||||
- [[_COMMUNITY_codebash (pip install -r requirements.txt)|code:bash (pip install -r requirements.txt)]]
|
||||
- [[_COMMUNITY_codeenv ( 数据库配置)|code:env (# 数据库配置)]]
|
||||
- [[_COMMUNITY_codebash (uvicorn app.mainapp --reload --port 8000)|code:bash (uvicorn app.main:app --reload --port 8000)]]
|
||||
- [[_COMMUNITY_BaseModel|BaseModel]]
|
||||
- [[_COMMUNITY_PlanResourceSnapshotMixin|PlanResourceSnapshotMixin]]
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `BaseModel` - 533 edges
|
||||
2. `get_tenant_no()` - 387 edges
|
||||
3. `DbUserContext` - 311 edges
|
||||
4. `success_response()` - 279 edges
|
||||
5. `error_response()` - 274 edges
|
||||
6. `generate_uuid()` - 216 edges
|
||||
7. `BxUserContext` - 204 edges
|
||||
8. `crm_user_info()` - 138 edges
|
||||
9. `PlPlan` - 121 edges
|
||||
10. `ExportValidationError` - 108 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `BackfillRule` --uses--> `Settings` [INFERRED]
|
||||
scripts/migrate_crm_sys_oss.py → app/core/config.py
|
||||
- `MigrationStats` --uses--> `Settings` [INFERRED]
|
||||
scripts/migrate_bx_data.py → app/core/config.py
|
||||
- `StepStats` --uses--> `Settings` [INFERRED]
|
||||
scripts/migrate_bx_data.py → app/core/config.py
|
||||
- `MigrationStats` --uses--> `Settings` [INFERRED]
|
||||
scripts/migrate_crm_clue.py → app/core/config.py
|
||||
- `StepStats` --uses--> `Settings` [INFERRED]
|
||||
scripts/migrate_crm_clue.py → app/core/config.py
|
||||
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Communities (194 total, 19 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.08
|
||||
Nodes (77): archive_plan(), archive_plan_draft(), create_plan_full(), get_plan(), 创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输), update_plan(), PlPlan, PlPlanProduct (+69 more)
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.05
|
||||
Nodes (55): RecognizeCertResult, PageResult, ResponseModel, BaseModel, PagedQuery, PagedResponse, InvoiceAttachmentOut, InvoiceOut (+47 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.18
|
||||
Nodes (21): allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title(), parse_optional_date(), parse_reimburse_date(), preview_reimburse_title_seq() (+13 more)
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.06
|
||||
Nodes (84): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+76 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.09
|
||||
Nodes (76): _apply_list_filters(), assign_opportunities(), batch_update_expect_date(), batch_update_stage(), change_stage(), create_opportunity(), _decimal_value(), _enrich_user_names() (+68 more)
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.20
|
||||
Nodes (21): _assert_users_exist(), get_setting(), Any, Session, _row_to_dict(), save_setting(), _assert_users_exist(), get_setting() (+13 more)
|
||||
|
||||
### Community 6 - "Community 6"
|
||||
Cohesion: 0.05
|
||||
Nodes (81): customer_check_duplicate(), customer_create(), customer_deal(), customer_delete(), customer_detail(), customer_generate_no(), customer_into_pool(), customer_transfer() (+73 more)
|
||||
|
||||
### Community 7 - "Community 7"
|
||||
Cohesion: 0.08
|
||||
Nodes (56): accumulate_stop_products(), aggregate_contract_product_plan_qtys(), assert_contract_qty_for_arrange(), _bucket_for_plan(), build_contract_qty_reminder_payload(), collect_plan_contract_qty_checks(), contract_product_has_fixed_qty(), effective_arranged_total() (+48 more)
|
||||
|
||||
### Community 8 - "Community 8"
|
||||
Cohesion: 0.17
|
||||
Nodes (22): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+14 more)
|
||||
|
||||
### Community 9 - "Community 9"
|
||||
Cohesion: 0.10
|
||||
Nodes (48): download_reimburse_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes(), cell_str(), _ids_visible_in_web_tree(), import_reimburse_workbook() (+40 more)
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.11
|
||||
Nodes (39): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), export_unsettled_plans(), _generate_settlement_no(), get_settlement() (+31 more)
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.10
|
||||
Nodes (57): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), export_urea_applies(), get_apply(), get_disburse() (+49 more)
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.08
|
||||
Nodes (40): AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest, UserCreate (+32 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.05
|
||||
Nodes (147): clue_check_convert(), clue_check_duplicate(), clue_detail(), clue_export(), clue_follow_statistics(), clue_import(), clue_list(), clue_mine() (+139 more)
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.11
|
||||
Nodes (33): PlPlanDelivery, PlPlanDeliveryProduct, PlPlanLoadProduct, 运输计划-装货段产品明细 pl_plan_load_product, 运输计划-送货段 pl_plan_delivery(plan 1:N), 运输计划-送货段产品明细 pl_plan_delivery_product, PlanArchiveDeliveryBlock, PlanArchiveLoadBlock (+25 more)
|
||||
|
||||
### Community 15 - "Community 15"
|
||||
Cohesion: 0.12
|
||||
Nodes (13): BxReimburseApply, BxReimburseApproval, BxReimburseDetail, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseInvoiceBriefOut, ReimburseInvoiceLinkIn, Any, Session (+5 more)
|
||||
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.36
|
||||
Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic
|
||||
|
||||
### Community 17 - "Community 17"
|
||||
Cohesion: 0.09
|
||||
Nodes (42): 返回 (作废, 归档)。现场链接实际走入库/出库单公共页。, _resolve_io_order_link_flags(), _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images() (+34 more)
|
||||
|
||||
### Community 18 - "Community 18"
|
||||
Cohesion: 0.16
|
||||
Nodes (36): BxApplyListExportBody, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), export_approved_by_me_reimburses(), export_my_reimburses() (+28 more)
|
||||
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.14
|
||||
Nodes (41): PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanContractLink, PlanDeliveryBody, PlanLoadBody, assert_at_most_one_contract(), assert_delivery_products_in_selected_contract(), assert_load_products_in_selected_contract() (+33 more)
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.09
|
||||
Nodes (45): dump_export_row(), issue_status_label(), Any, Session, respond_xlsx(), status_label(), advance_issue_stats(), batch_offset() (+37 more)
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
Cohesion: 0.18
|
||||
Nodes (36): PlVehicleRechargeApply, PlVehicleRechargeRecord, 车辆ETC/加油充值申请 pl_vehicle_recharge_apply, 车辆ETC/加油充值发放登记 pl_vehicle_recharge_record, 发放登记页:申请单 + 关联发放信息(左连接), VehicleRechargeApplyRead, VehicleRechargeDisburseBoardItem, VehicleRechargeRecordRead (+28 more)
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.08
|
||||
Nodes (28): parse_admin_request_json(), Any, Request, 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `{, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, ApiCryptoError, _b64url_decode(), _b64url_encode() (+20 more)
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.12
|
||||
Nodes (35): PlPlanProductBrandQty, 计划产品归档品牌数量 pl_plan_product_brand_qty stop_product_id 为空:计划产品级汇总;非空:装货/送货段产品, _is_plan_level_row(), load_brand_qtys_by_plan_product_ids(), load_brand_qtys_by_stop_product_ids(), _parse_unit_price(), persist_plan_product_brand_qtys(), persist_stop_product_brand_qtys() (+27 more)
|
||||
|
||||
### Community 24 - "Community 24"
|
||||
Cohesion: 0.19
|
||||
Nodes (16): DictEnsureError, ensure_dict_data(), ensure_remove_dict_data(), Session, 业务页字典 ensure:白名单内按 label 复用或插入 sys_dict_data。, label miss, but preferred value already exists → reuse, no insert, test_ensure_honors_explicit_preferred_value_on_insert(), test_ensure_inserts_new_with_value_equals_label() (+8 more)
|
||||
|
||||
### Community 25 - "Community 25"
|
||||
Cohesion: 0.26
|
||||
Nodes (12): list_share_logs(), _parse_user_agent(), Any, Session, CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits, 简易 User-Agent 解析(替代 Hutool UserAgentUtil), Java: queryLogsByQuoteId (+4 more)
|
||||
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): CustomerAssignPoolBody, CustomerCheckDuplicateBody, CustomerClaimBody, CustomerDealBody, CustomerDetailBody, CustomerIntoPoolBody, CustomerTransferBody, CRM 客户管理 Pydantic Schemas
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.15
|
||||
Nodes (24): list_vehicles(), _vehicle_to_read(), PlCert, PlDocumentReminder, 证件到期提醒表 pl_document_reminder, CertRead, CertRow, SnapshotCertRead (+16 more)
|
||||
|
||||
### Community 28 - "Community 28"
|
||||
Cohesion: 0.12
|
||||
Nodes (52): PlFreightSettlement, PlFreightSettlementApproval, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, _advance_after_approval(), _approval_to_dict(), can_user_approve_settlement(), cancel_draft_settlement() (+44 more)
|
||||
|
||||
### Community 29 - "Community 29"
|
||||
Cohesion: 0.10
|
||||
Nodes (68): register_quote_routes(), accept_quote(), assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value() (+60 more)
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
Cohesion: 0.16
|
||||
Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more)
|
||||
|
||||
### Community 31 - "Community 31"
|
||||
Cohesion: 0.17
|
||||
Nodes (28): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), export_inventory(), _generate_batch_no() (+20 more)
|
||||
|
||||
### Community 32 - "Community 32"
|
||||
Cohesion: 0.16
|
||||
Nodes (25): change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user(), list_user_ids_bound_to_post(), list_users() (+17 more)
|
||||
|
||||
### Community 33 - "Community 33"
|
||||
Cohesion: 0.14
|
||||
Nodes (26): contact_add(), contact_by_customer(), contact_delete(), contact_detail(), contact_set_primary(), contact_update(), create_contact(), get_contact() (+18 more)
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.14
|
||||
Nodes (21): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+13 more)
|
||||
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.18
|
||||
Nodes (36): clear_portal_workflow(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_bx_user_mapping(), load_runtime_settings() (+28 more)
|
||||
|
||||
### Community 36 - "Community 36"
|
||||
Cohesion: 0.17
|
||||
Nodes (29): _assert_brand_deletable(), barcode_exists(), category_code_exists(), create_category(), create_product(), generate_auto_product_no(), generate_barcode(), generate_product_no() (+21 more)
|
||||
|
||||
### Community 37 - "Community 37"
|
||||
Cohesion: 0.10
|
||||
Nodes (53): check_document_expiry(), document_reminder_stats(), DocumentReminderExportBody, export_document_reminders(), export_inventory_ledger(), get_inventory_ledger(), get_summary(), InventoryLedgerExportBody (+45 more)
|
||||
|
||||
### Community 38 - "Community 38"
|
||||
Cohesion: 0.31
|
||||
Nodes (9): decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。, 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。 (+1 more)
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.08
|
||||
Nodes (43): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+35 more)
|
||||
|
||||
### Community 40 - "Community 40"
|
||||
Cohesion: 0.11
|
||||
Nodes (33): assert_user_is_duty_staff(), build_dict_value_from_label(), DutyBizError, ensure_dict_data(), grab(), list_duty_staff_users(), normalize_person_name(), _pad_hhmm() (+25 more)
|
||||
|
||||
### Community 41 - "Community 41"
|
||||
Cohesion: 0.22
|
||||
Nodes (27): export_inbound(), _export_orders(), export_outbound(), _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound() (+19 more)
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 0.19
|
||||
Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+24 more)
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.10
|
||||
Nodes (33): BxExportBodyBase, create_invoice(), delete_invoice(), export_invoice_wallets(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices() (+25 more)
|
||||
|
||||
### Community 44 - "Community 44"
|
||||
Cohesion: 0.19
|
||||
Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more)
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 0.30
|
||||
Nodes (48): AttachmentDownloadUrlBody, DemoXlsxColumnSpec, DemoXlsxExportBody, DeptCreateBody, DeptExportBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody (+40 more)
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
Cohesion: 0.15
|
||||
Nodes (39): PlTransportDriverStopFeedback, PlTransportSiteStopFeedback, 运输单-司机按段附件回传 pl_transport_driver_stop_feedback, 运输单-现场按段回传 pl_transport_site_stop_feedback, _direction_label(), _dump_product_feedbacks(), _dump_urls(), _get_driver_feedback_row() (+31 more)
|
||||
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 0.11
|
||||
Nodes (35): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records() (+27 more)
|
||||
|
||||
### Community 48 - "Community 48"
|
||||
Cohesion: 0.08
|
||||
Nodes (62): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), batch_assign_owner(), batch_submit_contract_approval(), _contract_period_key(), contract_row_to_dict() (+54 more)
|
||||
|
||||
### Community 49 - "Community 49"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): IoOrderItemPatch, IoOrderItemRead, PublicIoOrderFeedback, PublicIoOrderHistoryProductRead, PublicIoOrderItemFeedback, PublicIoOrderStopFeedback, PublicIoOrderStopProductFeedback, 入库单 / 出库单 Pydantic schemas
|
||||
|
||||
### Community 50 - "Community 50"
|
||||
Cohesion: 0.08
|
||||
Nodes (78): ContractGapExportBody, PlanExportBody, DbInboundOutbound, DbPurchasePlan, PlDriver, PlPlanLoad, PlTransportDbLink, 司机表 pl_driver(兼容旧表,迁移后逐步废弃) (+70 more)
|
||||
|
||||
### Community 51 - "Community 51"
|
||||
Cohesion: 0.22
|
||||
Nodes (21): _address_to_read(), _build_address_query(), create_transport_address(), delete_transport_address(), export_transport_addresses(), _get_address(), get_transport_address(), list_all_transport_addresses() (+13 more)
|
||||
|
||||
### Community 52 - "Community 52"
|
||||
Cohesion: 0.13
|
||||
Nodes (26): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+18 more)
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 0.20
|
||||
Nodes (7): _FakeQuery, _FakeSession, _plan(), 现场链接生成条件:装货/送货段含山峡或云栋客户, test_external_stops_do_not_require_site_link(), test_internal_delivery_requires_site_link(), test_legacy_plan_customer_fallback()
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.19
|
||||
Nodes (32): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _change_row_to_dict(), create_contract_change(), create_contract_template(), _enrich_change_rows(), execute_change(), export_contract_changes() (+24 more)
|
||||
|
||||
### Community 55 - "Community 55"
|
||||
Cohesion: 0.18
|
||||
Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), legacy_parent_id(), load_oss_id_to_url(), load_runtime_settings() (+23 more)
|
||||
|
||||
### Community 56 - "Community 56"
|
||||
Cohesion: 0.07
|
||||
Nodes (78): _attach_history_products(), _resolve_unit_label(), _as_date(), _build_driver_url(), _build_history_stop_reads(), _build_public_page(), _build_stop_product_reads(), _format_file_size() (+70 more)
|
||||
|
||||
### Community 57 - "Community 57"
|
||||
Cohesion: 0.21
|
||||
Nodes (22): clear_target_products(), count_target_rows(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+14 more)
|
||||
|
||||
### Community 58 - "Community 58"
|
||||
Cohesion: 0.11
|
||||
Nodes (24): create_expense_item(), delete_expense_item(), ExpenseItemExportBody, export_expense_items(), _flatten_expense_tree(), get_expense_item(), get_expense_item_tree(), Session (+16 more)
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 0.20
|
||||
Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more)
|
||||
|
||||
### Community 60 - "Community 60"
|
||||
Cohesion: 0.24
|
||||
Nodes (5): MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ
|
||||
|
||||
### Community 61 - "Community 61"
|
||||
Cohesion: 0.06
|
||||
Nodes (50): pool_record_detail(), pool_record_list(), pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_update(), pool_rule_update_status() (+42 more)
|
||||
|
||||
### Community 62 - "Community 62"
|
||||
Cohesion: 0.08
|
||||
Nodes (37): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add() (+29 more)
|
||||
|
||||
### Community 63 - "Community 63"
|
||||
Cohesion: 0.24
|
||||
Nodes (9): parse_resource_snapshot(), Any, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, 从 ORM 文本列或 dict 解析快照。, SnapshotPersonnelRow, TransportResourceSnapshot, build_transport_resource_snapshot(), Session (+1 more)
|
||||
|
||||
### Community 64 - "Community 64"
|
||||
Cohesion: 0.18
|
||||
Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more)
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 0.15
|
||||
Nodes (42): PlVehicleMaintenanceApply, PlVehicleMaintenanceProcess, 车辆维保申请 pl_vehicle_maintenance_apply, 车辆维保处理登记 pl_vehicle_maintenance_process, Decimal, VehicleMaintenanceApplyCreate, VehicleMaintenanceApplyRead, VehicleMaintenanceApplyReminder (+34 more)
|
||||
|
||||
### Community 66 - "Community 66"
|
||||
Cohesion: 0.05
|
||||
Nodes (37): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), Session, read_customer_stop_pref(), menu_badge_stats() (+29 more)
|
||||
|
||||
### Community 67 - "Community 67"
|
||||
Cohesion: 0.12
|
||||
Nodes (36): get_password_hash(), Namespace, build_merged_users(), bx_role_labels(), check_minio(), check_mysql(), check_redis(), _clip() (+28 more)
|
||||
|
||||
### Community 68 - "Community 68"
|
||||
Cohesion: 0.22
|
||||
Nodes (19): _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator(), can_delete_by_creator(), is_super_admin(), normalize_user_info(), Any (+11 more)
|
||||
|
||||
### Community 69 - "Community 69"
|
||||
Cohesion: 0.26
|
||||
Nodes (12): load_plan_document_attachments_by_plan_ids(), _parse_image_urls(), Session, 运输计划列表:聚合司机/现场/出入库现场等单据附件。, _short_label(), _stop_sort_key(), _stop_source_label(), test_parse_image_urls_csv() (+4 more)
|
||||
|
||||
### Community 70 - "Community 70"
|
||||
Cohesion: 0.14
|
||||
Nodes (24): PlTransportProductBrandQty, PlTransportProductFeedback, 运输单按产品回传 pl_transport_product_feedback, 运输单产品回传品牌数量 pl_transport_product_brand_qty, _dict_field(), format_brand_qty_summary(), load_transport_driver_product_feedbacks(), persist_io_item_brand_qtys() (+16 more)
|
||||
|
||||
### Community 71 - "Community 71"
|
||||
Cohesion: 0.25
|
||||
Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more)
|
||||
|
||||
### Community 72 - "Community 72"
|
||||
Cohesion: 0.14
|
||||
Nodes (30): _apply_contract_entity_fields(), _build_contract_filters(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax(), contract_no_exists(), create_contract(), _decimal_value() (+22 more)
|
||||
|
||||
### Community 73 - "Community 73"
|
||||
Cohesion: 0.20
|
||||
Nodes (25): derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+17 more)
|
||||
|
||||
### Community 74 - "Community 74"
|
||||
Cohesion: 0.14
|
||||
Nodes (27): invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_set_default(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价) (+19 more)
|
||||
|
||||
### Community 75 - "apply_crm_create_by_scope"
|
||||
Cohesion: 0.18
|
||||
Nodes (25): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), _kg_to_ton() (+17 more)
|
||||
|
||||
### Community 76 - "opportunity_follow.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (32): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+24 more)
|
||||
|
||||
### Community 77 - "Community 77"
|
||||
Cohesion: 0.11
|
||||
Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more)
|
||||
|
||||
### Community 78 - "Community 78"
|
||||
Cohesion: 0.15
|
||||
Nodes (23): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan(), _get_plan_by_id_only() (+15 more)
|
||||
|
||||
### Community 79 - "PlCarrier"
|
||||
Cohesion: 0.19
|
||||
Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more)
|
||||
|
||||
### Community 80 - "resolve_crm_product"
|
||||
Cohesion: 0.06
|
||||
Nodes (91): approve_carrier(), bind_vehicle_driver(), CarrierExportBody, create_carrier(), create_driver(), create_personnel(), delete_carrier(), delete_driver() (+83 more)
|
||||
|
||||
### Community 81 - "customer_follow.py"
|
||||
Cohesion: 0.13
|
||||
Nodes (23): _build_driver_url(), get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, TransportSiteLinkRead, plan_requires_site_link(), Session, 运输计划:内置山峡/云栋客户判定(合同可免), 装货或送货段任一段客户为山峡/云栋时,需要生成现场链接。 (+15 more)
|
||||
|
||||
### Community 82 - "list_duty_staff_users"
|
||||
Cohesion: 0.06
|
||||
Nodes (58): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_convert(), clue_create(), clue_delete() (+50 more)
|
||||
|
||||
### Community 83 - "Community 83"
|
||||
Cohesion: 0.10
|
||||
Nodes (42): _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer(), _build_approval_list_filters(), can_user_approve() (+34 more)
|
||||
|
||||
### Community 84 - "Community 84"
|
||||
Cohesion: 0.23
|
||||
Nodes (23): build_id_maps(), clip_text(), count_rows(), export_mapping(), fetch_rows(), legacy_id_to_str(), main(), map_id() (+15 more)
|
||||
|
||||
### Community 85 - "allocate_next_biz_no"
|
||||
Cohesion: 0.13
|
||||
Nodes (42): clue_follow_detail(), assign_clues(), check_convert(), check_duplicate_clue(), convert_clue(), create_clue(), _enrich_user_names(), _ensure_clue_in_scope() (+34 more)
|
||||
|
||||
### Community 86 - "Community 86"
|
||||
Cohesion: 0.18
|
||||
Nodes (18): align_contract_no_to_sign_date(), generate_contract_no(), date, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} 流水与撞号检测须含软删:uk_contr, 标准编号替换日期段,保留序号;非标准返回 None。, 将标准合同编号日期段对齐签订日;撞号则序号顺延(含软删查重)。 非标准编号原样返回。无签订日则原样返回。, replace_contract_no_date(), _mock_last_contract() (+10 more)
|
||||
|
||||
### Community 87 - "list_customers"
|
||||
Cohesion: 0.13
|
||||
Nodes (23): _alias_row_to_dict(), _brand_row_to_dict(), _build_category_tree(), _category_row_to_dict(), _collect_category_with_ancestors(), get_product_by_no(), list_categories(), list_category_tree() (+15 more)
|
||||
|
||||
### Community 88 - "CrmProduct"
|
||||
Cohesion: 0.23
|
||||
Nodes (17): PlCustomerStopPref, 客户装/送货物流默认记忆 pl_customer_stop_pref, _as_str(), build_stop_pref_upsert_items(), get_customer_stop_pref(), Any, Session, 供 plan 保存调用;异常由调用方用 savepoint 吞掉。 (+9 more)
|
||||
|
||||
### Community 89 - "pl_ocr_service.py"
|
||||
Cohesion: 0.19
|
||||
Nodes (22): PlOcrUsageMonth, 阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计), assert_quota_available(), _build_ocr_client(), compress_image_bytes(), current_usage_month(), _first_attachment_url(), get_or_create_usage_row() (+14 more)
|
||||
|
||||
### Community 90 - "WechatMessageService"
|
||||
Cohesion: 0.12
|
||||
Nodes (22): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), operlog_detail(), operlog_export(), operlog_list(), OperLogExportBody, Session (+14 more)
|
||||
|
||||
### Community 91 - "unsettled_plans_q_filter"
|
||||
Cohesion: 0.21
|
||||
Nodes (16): get_web_auth_menu_codes(), 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web(), Session, Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析 (+8 more)
|
||||
|
||||
### Community 92 - "Community 92"
|
||||
Cohesion: 0.45
|
||||
Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more)
|
||||
|
||||
### Community 93 - "api_request_log_middleware.py"
|
||||
Cohesion: 0.19
|
||||
Nodes (30): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, _assignment_dict(), build_public_url(), _count_active_assignments(), _day_dict() (+22 more)
|
||||
|
||||
### Community 94 - "assert_contract_editable_for_update"
|
||||
Cohesion: 0.60
|
||||
Nodes (3): assert_contract_editable_for_update(), test_assert_allows_editable(), test_assert_rejects_non_editable()
|
||||
|
||||
### Community 95 - "test_pl_public_link_archived.py"
|
||||
Cohesion: 0.38
|
||||
Nodes (14): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+6 more)
|
||||
|
||||
### Community 96 - "minio_url.py"
|
||||
Cohesion: 0.23
|
||||
Nodes (21): _apply_plan_update(), get_plan_related(), format_datetime(), _create_by_name(), datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+13 more)
|
||||
|
||||
### Community 97 - "contact.py"
|
||||
Cohesion: 0.10
|
||||
Nodes (44): _advance_list_filters(), advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _export_advance_rows() (+36 more)
|
||||
|
||||
### Community 98 - "LocalStorage"
|
||||
Cohesion: 0.35
|
||||
Nodes (11): create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict(), soft_delete_tenant(), tenant_no_exists() (+3 more)
|
||||
|
||||
### Community 99 - "redis_client.py"
|
||||
Cohesion: 0.29
|
||||
Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more)
|
||||
|
||||
### Community 100 - "price_letter_detail"
|
||||
Cohesion: 0.27
|
||||
Nodes (15): Settings, BaseSettings, apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main() (+7 more)
|
||||
|
||||
### Community 101 - "tenant.py"
|
||||
Cohesion: 0.10
|
||||
Nodes (35): create_vehicle(), get_vehicle(), update_vehicle(), _vehicle_to_detail(), calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, PlVehicle (+27 more)
|
||||
|
||||
### Community 102 - "BaseStorage"
|
||||
Cohesion: 0.18
|
||||
Nodes (21): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), export_applies(), export_process_board(), get_apply() (+13 more)
|
||||
|
||||
### Community 103 - "pl_internal_customer.py"
|
||||
Cohesion: 0.05
|
||||
Nodes (61): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+53 more)
|
||||
|
||||
### Community 104 - "apply_crm_create_by_scope"
|
||||
Cohesion: 0.24
|
||||
Nodes (18): DeliverySlipPrintRead, PlanDeliveryRead, build_delivery_slip_print(), _customer_key(), _delivery_matches_customer(), get_delivery_slip_print_context(), list_delivery_print_customers(), _merge_stop_products() (+10 more)
|
||||
|
||||
### Community 105 - "pool_customer_assign"
|
||||
Cohesion: 0.33
|
||||
Nodes (13): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), Any (+5 more)
|
||||
|
||||
### Community 106 - "site.py"
|
||||
Cohesion: 0.22
|
||||
Nodes (16): PlanLoadRead, compute_contract_gap_sides(), compute_plan_gap_sides_from_stops(), 按段次汇总计划是否仍有合同缺口(supplier=装货侧,demander=送货侧)。, stop_contract_gap(), resolve_load_customer_name(), _compile(), test_both_external_no_contracts_gaps_both() (+8 more)
|
||||
|
||||
### Community 107 - "apply_pl_scope"
|
||||
Cohesion: 0.33
|
||||
Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_dict(), soft_delete_leave(), update_leave() (+3 more)
|
||||
|
||||
### Community 108 - "statistics.py"
|
||||
Cohesion: 0.20
|
||||
Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more)
|
||||
|
||||
### Community 109 - "test_pl_plan_stop_rules.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (31): _extract_qty(), _fmt_qty(), normalize_stop_dibang_fields(), Any, Decimal, 运输计划多段:内部客户地磅默认值与数量平衡校验, 地磅默认勾选以本段客户是否为内部客户(山峡/云栋)为准。, 归一化段次地磅勾选与方向:勾选但方向缺失/none 时按本段客户补默认方向。 (+23 more)
|
||||
|
||||
### Community 110 - "pool_rule.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (26): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+18 more)
|
||||
|
||||
### Community 111 - "test_pl_public_transport_history.py"
|
||||
Cohesion: 0.24
|
||||
Nodes (8): generate_id(), camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType
|
||||
|
||||
### Community 112 - "merge_duplicate_crm_customers.py"
|
||||
Cohesion: 0.26
|
||||
Nodes (22): Connection, backup_tables(), _contact_key(), discover_merge_pairs(), fetch_customer(), _invoice_key(), load_database_url(), main() (+14 more)
|
||||
|
||||
### Community 113 - "dict_type.py"
|
||||
Cohesion: 0.35
|
||||
Nodes (11): create_dict_type(), dict_type_code_exists(), get_dict_type(), list_dict_types(), Any, Session, 字典类型 CRUD(sys_dict_type), _row_to_dict() (+3 more)
|
||||
|
||||
### Community 114 - "dept.py"
|
||||
Cohesion: 0.39
|
||||
Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more)
|
||||
|
||||
### Community 115 - "site.py"
|
||||
Cohesion: 0.25
|
||||
Nodes (13): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+5 more)
|
||||
|
||||
### Community 116 - "Community 116"
|
||||
Cohesion: 0.17
|
||||
Nodes (28): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+20 more)
|
||||
|
||||
### Community 117 - "pl_plan_list_attachments.py"
|
||||
Cohesion: 0.26
|
||||
Nodes (11): _apply_plan_product_update(), apply_product_snapshot_to_plan(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。 require_on_shelf=False 用于运输计划联动地磅等历, resolve_crm_product(), _product() (+3 more)
|
||||
|
||||
### Community 118 - "Community 118"
|
||||
Cohesion: 0.20
|
||||
Nodes (24): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+16 more)
|
||||
|
||||
### Community 119 - "Community 119"
|
||||
Cohesion: 0.11
|
||||
Nodes (37): VehiclePersonnelRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name(), _missing_field_labels() (+29 more)
|
||||
|
||||
### Community 120 - "list_duty_staff_users"
|
||||
Cohesion: 0.15
|
||||
Nodes (3): BaseStorage, OSSStorage, 浏览器内联预览 URL;默认实现为普通访问地址。
|
||||
|
||||
### Community 121 - "_build_user_info_payload"
|
||||
Cohesion: 0.18
|
||||
Nodes (26): _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。无 Token 或已失效时仍返回成功(幂等)。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。, refresh_token(), web_login(), create_access_token() (+18 more)
|
||||
|
||||
### Community 122 - "post.py"
|
||||
Cohesion: 0.39
|
||||
Nodes (10): create_post(), get_post(), list_posts(), post_code_exists(), Any, Session, _row_to_dict(), soft_delete_post() (+2 more)
|
||||
|
||||
### Community 123 - "customer_options"
|
||||
Cohesion: 0.11
|
||||
Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more)
|
||||
|
||||
### Community 124 - "LocalStorage"
|
||||
Cohesion: 0.27
|
||||
Nodes (11): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), Any, Session, 字典数据 CRUD(sys_dict_data), 字典下拉选项:租户主数据,忽略数据范围(user_info 保留兼容调用方,不参与过滤)。 (+3 more)
|
||||
|
||||
### Community 125 - "ethnic.py"
|
||||
Cohesion: 0.06
|
||||
Nodes (65): _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date(), date (+57 more)
|
||||
|
||||
### Community 126 - "oper_log.py"
|
||||
Cohesion: 0.15
|
||||
Nodes (5): LocalStorage, process_image_content(), Path, 带下载文件名的访问 URL;默认实现为普通访问地址。, 处理图片内容,如果是 HEIC 格式则转换为 JPEG
|
||||
|
||||
### Community 127 - "Any"
|
||||
Cohesion: 0.13
|
||||
Nodes (36): PlanStopProductRead, _append_legacy_plan_product_rows(), _append_stop_product_rows(), build_plan_archive_export_rows(), _empty_product_fields(), _format_date_value(), _format_plate_display(), _get_stop_archive_actual_qty() (+28 more)
|
||||
|
||||
### Community 128 - "api_crypto.py"
|
||||
Cohesion: 0.60
|
||||
Nodes (9): apply_site_feedback(), _header(), _item(), test_apply_site_feedback_does_not_reset_first_submitted_at(), test_apply_site_feedback_keeps_in_progress_when_requested(), test_apply_site_feedback_rejects_already_voided(), test_apply_site_feedback_rejects_invalid_status(), test_apply_site_feedback_sets_status_completed() (+1 more)
|
||||
|
||||
### Community 129 - "BaseStorage"
|
||||
Cohesion: 0.12
|
||||
Nodes (24): _auto_contract_name_body(), generate_contract_name(), 按面板单位全称精确匹配交易主体/客户主数据,取 shortName;对不上则用全称。, 前端预览误用单位全称时,名称片段会等于面板/客户/开票全称。, 按面板供方(partyA)-需方(partyB)生成:{供方简称}-{需方简称}({合同编号})。 - 名称为空:按主数据简称自动生成 - 名, resolve_party_short_name(), _strip_contract_name_no_suffix(), _user_contract_name_uses_party_full_name() (+16 more)
|
||||
|
||||
### Community 130 - "_filter_export_rows_by_ids"
|
||||
Cohesion: 0.36
|
||||
Nodes (13): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), menu_name_exists(), Any (+5 more)
|
||||
|
||||
### Community 131 - "resolve_crm_product"
|
||||
Cohesion: 0.49
|
||||
Nodes (10): clue_statistics_level(), _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics(), get_clue_source_statistics(), get_clue_trend_statistics() (+2 more)
|
||||
|
||||
### Community 132 - ".to_list_kwargs"
|
||||
Cohesion: 0.24
|
||||
Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more)
|
||||
|
||||
### Community 133 - "inventory_id.py"
|
||||
Cohesion: 0.18
|
||||
Nodes (6): convert_heic_to_jpeg(), _guess_preview_content_type(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, 将 HEIC/HEIF 格式转换为 JPEG 格式
|
||||
|
||||
### Community 134 - "list_contacts"
|
||||
Cohesion: 0.40
|
||||
Nodes (9): create_oss(), create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path() (+1 more)
|
||||
|
||||
### Community 135 - "context.py"
|
||||
Cohesion: 0.33
|
||||
Nodes (8): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, BizNoKind
|
||||
|
||||
### Community 136 - "get_db_current_user_optional"
|
||||
Cohesion: 0.06
|
||||
Nodes (92): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), CompletedTaskExportBody, create_process_def(), delete_process_def(), _enrich_task_list(), export_completed_tasks() (+84 more)
|
||||
|
||||
### Community 137 - "iter_user_menu_perm_codes"
|
||||
Cohesion: 0.17
|
||||
Nodes (15): change_current_user_password(), get_current_user_profile(), public_quote_share(), Request, Session, 获取当前用户信息(与 sys_user 字段对应)。, 公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT), get_current_user() (+7 more)
|
||||
|
||||
### Community 138 - "Community 138"
|
||||
Cohesion: 0.33
|
||||
Nodes (19): check_python(), create_venv(), ensure_dirs(), ensure_valid_venv(), ensure_venv_and_runtime(), install_dependencies(), is_running(), log_error() (+11 more)
|
||||
|
||||
### Community 139 - "customer_options"
|
||||
Cohesion: 0.08
|
||||
Nodes (42): export_plans(), PlanExportBody, 导出计划列表(当前筛选全量,或 ids 已选)。, export_weighing(), 导出地磅单列表(当前筛选全量,或 ids 已选)。, WeighingExportBody, delete_leave(), export_leaves() (+34 more)
|
||||
|
||||
### Community 140 - "crm_export_columns.py"
|
||||
Cohesion: 0.31
|
||||
Nodes (13): PlanStopProductBody, Decimal, 段 address 为空时,按经纬度从运输地址库补全 full_address。, _resolve_plan_product_id(), resolve_stop_address_from_library(), _to_decimal(), _plan_product_row(), test_resolve_plan_product_id_by_explicit_id() (+5 more)
|
||||
|
||||
### Community 141 - "web_login_rsa_public_key"
|
||||
Cohesion: 0.24
|
||||
Nodes (13): get_product(), soft_delete_product(), assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session (+5 more)
|
||||
|
||||
### Community 142 - "clear_pl_plan_instance_data.py"
|
||||
Cohesion: 0.46
|
||||
Nodes (7): _count(), _delete(), _engine_from_env(), main(), Engine, 清空运输计划(pl_plan)及关联实例数据,便于测试环境重新走流程。 用法(在 backend 目录、已配置 .env DATABASE_URL): p, _table_exists()
|
||||
|
||||
### Community 143 - "create_from_quote"
|
||||
Cohesion: 0.28
|
||||
Nodes (8): list_products(), 分页查询产品列表 keyword 默认匹配:名称 / 编号 / 拼音首字母。 选择器场景可关闭编号匹配、开启规格型号匹配(避免短数字误命中产品, 产品/客户列表 keyword:名称/编号/拼音首字母 OR 匹配。, 选择器:名称/拼音/规格型号,不匹配产品编号。, test_list_customer_options_keyword_includes_name_and_pinyin(), test_list_customers_keyword_includes_name_and_pinyin(), test_list_products_keyword_includes_name_and_pinyin(), test_list_products_keyword_selector_mode_excludes_product_no_includes_model()
|
||||
|
||||
### Community 144 - "response.py"
|
||||
Cohesion: 0.04
|
||||
Nodes (104): _apply_exclude_follow_status_filter(), _apply_follow_status_filter(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), delete_plan() (+96 more)
|
||||
|
||||
### Community 145 - "list_products"
|
||||
Cohesion: 0.31
|
||||
Nodes (9): format_hhmm(), format_time_label(), parse_hhmm(), test_format_time_label_cross_day(), test_format_time_label_empty(), test_format_time_label_same_day(), test_parse_hhmm(), test_parse_hhmm_invalid_raises() (+1 more)
|
||||
|
||||
### Community 146 - "dict_data.py"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): CustomerFollowByCustomerBody, CustomerFollowCreateBody, CustomerFollowDeleteBody, CustomerFollowDetailBody, CustomerFollowListBody, CustomerFollowUpdateBody, CRM 客户跟进记录 Pydantic Schemas
|
||||
|
||||
### Community 147 - "Community 147"
|
||||
Cohesion: 0.37
|
||||
Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_dependencies(), log_error(), log_info(), log_success() (+9 more)
|
||||
|
||||
### Community 148 - "plan_has_incomplete_hazard_cert_exists"
|
||||
Cohesion: 0.19
|
||||
Nodes (26): put_plan_side_contracts(), put_plan_stop_contracts(), PlanContractGapRead, PlanProductRead, is_internal_customer_name(), build_plan_contract_gap_read(), _clear_legacy_side_contracts(), _delivery_stop_gap_expr() (+18 more)
|
||||
|
||||
### Community 149 - ".to_tenant_user_dict"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): create_leave(), Config, LeaveCreate, LeaveResponse, LeaveUpdate, Pydantic schemas - 请假申请
|
||||
|
||||
### Community 150 - "list_product_options"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): _avatar_url_field(), _build_user_info_payload(), 与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。, 与 web-admin `userInfo` 字段约定一致。, _web_role_list()
|
||||
|
||||
### Community 153 - "web_login_rsa_public_key"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): 简易搜索:计划编号 / 客户(供应商) / 车牌 / 承运商名称。, unsettled_plans_q_filter(), 未结算计划简易搜索:q 应覆盖计划编号/客户/车牌/承运商名称。, test_unsettled_plans_q_filter_includes_carrier_and_plate()
|
||||
|
||||
### Community 155 - "WechatMessageService"
|
||||
Cohesion: 0.15
|
||||
Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import WechatMes, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_ (+1 more)
|
||||
|
||||
### Community 156 - "list_product_options"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): list_product_options(), 产品下拉 options:keyword 按产品名称/拼音首字母模糊匹配,不匹配产品编号。, test_list_product_options_keyword_only_filters_product_name()
|
||||
|
||||
### Community 157 - "datetime_parse.py"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。
|
||||
|
||||
### Community 158 - "create_from_quote"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id
|
||||
|
||||
### Community 162 - ".to_tenant_user_dict"
|
||||
Cohesion: 0.42
|
||||
Nodes (7): default_settlement_clause(), test_advance_payment_clause(), test_arrive_payment_clause(), test_empty_falls_back_to_arrive(), test_monthly_settlement_clause_uses_label(), test_unknown_falls_back_to_arrive(), test_volume_quarterly_other_labels()
|
||||
|
||||
### Community 173 - "resolve_create_time_bounds"
|
||||
Cohesion: 0.07
|
||||
Nodes (68): _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url(), create_transport(), _ensure_driver_access_token() (+60 more)
|
||||
|
||||
### Community 179 - "test_pl_vehicle_personnel_photo_schema.py"
|
||||
Cohesion: 0.27
|
||||
Nodes (16): add_favorite(), count_active(), find_active(), find_soft_deleted(), list_favorites(), _next_order_num(), normalize_menu_path(), Any (+8 more)
|
||||
|
||||
### Community 206 - "crm_quote_pdf.py"
|
||||
Cohesion: 0.36
|
||||
Nodes (10): build_quote_html(), _default_value(), _format_date(), _format_discount(), _format_money(), generate_quote_pdf(), _get_pdf_styles(), Any (+2 more)
|
||||
|
||||
### Community 207 - "shanxia2.0 后端骨架(FastAPI)"
|
||||
Cohesion: 0.18
|
||||
Nodes (10): 1. 创建虚拟环境, 2. 安装依赖, 3. 配置环境变量, 4. 启动服务, API 路由分组, shanxia2.0 后端骨架(FastAPI), 开发规范, 快速开始 (+2 more)
|
||||
|
||||
### Community 220 - "api_crypto_middleware.py"
|
||||
Cohesion: 0.39
|
||||
Nodes (8): get_redis_client(), get_sync_redis_client(), Redis, 共享 Redis 客户端(同步:会话鉴权;异步:API 加密 nonce)。, 同步 Redis(auth 会话等,在线程池中调用)。, 异步 Redis(API 加密 nonce 等中间件)。, _redis_common_kwargs(), redis_enabled()
|
||||
|
||||
### Community 237 - "order_status_compat.py"
|
||||
Cohesion: 0.36
|
||||
Nodes (7): derive_legacy_status_from_three(), derive_three_status_from_legacy(), Decimal, 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal()
|
||||
|
||||
### Community 239 - "shanxia2.0 Backend 生产部署说明"
|
||||
Cohesion: 0.25
|
||||
Nodes (7): 1. 上传到服务器, 2. 服务器首次启动, 3. 日常运维, 4. 配置文件, 5. 与 Nginx 配合, 6. 常见问题, shanxia2.0 Backend 生产部署说明
|
||||
|
||||
### Community 246 - "db_collation.py"
|
||||
Cohesion: 0.38
|
||||
Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时统一排序规则,避免 Illegal mix of collations。, 跨表字符串等值比较(JOIN / WHERE)时统一为 utf8mb4_unicode_ci。, 将列显式设为 utf8mb4_unicode_ci。, unicode_ci()
|
||||
|
||||
## Knowledge Gaps
|
||||
- **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **19 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `generate_uuid()` connect `resolve_create_time_bounds` to `Community 0`, `_filter_export_rows_by_ids`, `Community 4`, `Community 5`, `Community 6`, `context.py`, `list_contacts`, `Community 8`, `get_db_current_user_optional`, `Community 11`, `Community 14`, `Community 15`, `response.py`, `Community 17`, `Community 19`, `plan_has_incomplete_hazard_cert_exists`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 27`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `Community 34`, `Community 36`, `Community 37`, `Community 39`, `Community 40`, `Community 43`, `Community 46`, `Community 48`, `Community 50`, `Community 51`, `Community 52`, `Community 54`, `Community 61`, `Community 62`, `Community 65`, `Community 67`, `Community 70`, `Community 71`, `Community 72`, `Community 74`, `apply_crm_create_by_scope`, `Community 78`, `PlCarrier`, `resolve_crm_product`, `Community 83`, `allocate_next_biz_no`, `CrmProduct`, `pl_ocr_service.py`, `api_request_log_middleware.py`, `contact.py`, `LocalStorage`, `tenant.py`, `pool_customer_assign`, `apply_pl_scope`, `dict_type.py`, `dept.py`, `Community 116`, `Community 118`, `_build_user_info_payload`, `post.py`, `LocalStorage`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.165) - this node is a cross-community bridge._
|
||||
- **Why does `Settings` connect `price_letter_detail` to `Community 64`, `Community 66`, `Community 35`, `Community 67`, `Community 73`, `Community 42`, `statistics.py`, `Community 44`, `Community 55`, `Community 57`, `Community 59`, `Community 30`?**
|
||||
_High betweenness centrality (0.114) - this node is a cross-community bridge._
|
||||
- **Why does `BaseModel` connect `Community 1` to `Community 0`, `Community 6`, `get_db_current_user_optional`, `Community 10`, `customer_options`, `Community 11`, `Community 12`, `Community 13`, `Community 15`, `response.py`, `Community 14`, `Community 18`, `dict_data.py`, `Community 20`, `.to_tenant_user_dict`, `plan_has_incomplete_hazard_cert_exists`, `Community 19`, `Community 17`, `Community 21`, `Community 26`, `Community 27`, `Community 31`, `Community 33`, `Community 34`, `Community 37`, `Community 39`, `Community 41`, `Community 43`, `Community 45`, `resolve_create_time_bounds`, `Community 47`, `Community 48`, `Community 49`, `Community 50`, `Community 51`, `Community 52`, `Community 56`, `Community 58`, `Community 61`, `Community 62`, `Community 63`, `crm_export_columns.py`, `Community 66`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `Community 78`, `resolve_crm_product`, `customer_follow.py`, `list_duty_staff_users`, `WechatMessageService`, `test_pl_public_link_archived.py`, `contact.py`, `tenant.py`, `BaseStorage`, `apply_crm_create_by_scope`, `pool_rule.py`, `Community 119`, `customer_options`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.109) - this node is a cross-community bridge._
|
||||
- **Are the 30 inferred relationships involving `DbUserContext` (e.g. with `InventoryExportBody` and `InventoryRelatedData`) actually correct?**
|
||||
_`DbUserContext` has 30 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?**
|
||||
_670 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.0810126582278481 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05376972530683811 - nodes in this community are weakly interconnected._
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,16 +1,16 @@
|
||||
# Graph Report - backend (2026-08-30)
|
||||
# Graph Report - backend (2026-09-01)
|
||||
|
||||
## Corpus Check
|
||||
- 367 files · ~260,637 words
|
||||
- 367 files · ~260,720 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 5319 nodes · 20121 edges · 194 communities (175 shown, 19 thin omitted)
|
||||
- 5324 nodes · 20135 edges · 200 communities (178 shown, 22 thin omitted)
|
||||
- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 1029 edges (avg confidence: 0.53)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `19c5aaa8`
|
||||
- Built from commit: `506cc799`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@@ -178,7 +178,13 @@
|
||||
- [[_COMMUNITY_get_client_ip|get_client_ip]]
|
||||
- [[_COMMUNITY_context.py|context.py]]
|
||||
- [[_COMMUNITY_.to_tenant_user_dict|.to_tenant_user_dict]]
|
||||
- [[_COMMUNITY_LocalStorage|LocalStorage]]
|
||||
- [[_COMMUNITY__FakeQuery|_FakeQuery]]
|
||||
- [[_COMMUNITY_list_duty_staff_users|list_duty_staff_users]]
|
||||
- [[_COMMUNITY_codeblock1 (iflytekshanxia2.0backend)|code:block1 (/iflytek/shanxia2.0/backend)]]
|
||||
- [[_COMMUNITY_SoftDeleteModel|SoftDeleteModel]]
|
||||
- [[_COMMUNITY_ContractListQuery|ContractListQuery]]
|
||||
- [[_COMMUNITY___init__.py|__init__.py]]
|
||||
- [[_COMMUNITY_resolve_create_time_bounds|resolve_create_time_bounds]]
|
||||
- [[_COMMUNITY_test_pl_vehicle_personnel_photo_schema.py|test_pl_vehicle_personnel_photo_schema.py]]
|
||||
- [[_COMMUNITY_crm_quote_pdf.py|crm_quote_pdf.py]]
|
||||
@@ -227,23 +233,23 @@
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Communities (194 total, 19 thin omitted)
|
||||
## Communities (200 total, 22 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.08
|
||||
Nodes (77): archive_plan(), archive_plan_draft(), create_plan_full(), get_plan(), 创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输), update_plan(), PlPlan, PlPlanProduct (+69 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (79): ContractGapExportBody, create_plan(), PlanExportBody, QrCodeResponse, TransportExportBody, PlDriver, PlPlan, PlPlanProduct (+71 more)
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.05
|
||||
Nodes (55): RecognizeCertResult, PageResult, ResponseModel, BaseModel, PagedQuery, PagedResponse, InvoiceAttachmentOut, InvoiceOut (+47 more)
|
||||
Nodes (64): RecognizeCertResult, PageResult, ResponseModel, BaseModel, PagedQuery, PagedResponse, InvoiceAttachmentOut, InvoiceOut (+56 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.18
|
||||
Nodes (21): allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title(), is_auto_reimburse_title(), parse_optional_date(), parse_reimburse_date(), preview_reimburse_title_seq() (+13 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (26): ReimburseDetailOut, filter_current_cycle_approvals(), 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, 审批进度仅展示当前轮次;完整历史由 get_approval_history 返回。, allocate_reimburse_title_seq(), format_reimburse_title(), generate_apply_code(), generate_title() (+18 more)
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.06
|
||||
Nodes (84): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+76 more)
|
||||
Nodes (91): attachment_download_url(), attachment_preview_url(), create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_menu_favorite(), create_post() (+83 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.09
|
||||
@@ -254,76 +260,76 @@ Cohesion: 0.20
|
||||
Nodes (21): _assert_users_exist(), get_setting(), Any, Session, _row_to_dict(), save_setting(), _assert_users_exist(), get_setting() (+13 more)
|
||||
|
||||
### Community 6 - "Community 6"
|
||||
Cohesion: 0.05
|
||||
Nodes (81): customer_check_duplicate(), customer_create(), customer_deal(), customer_delete(), customer_detail(), customer_generate_no(), customer_into_pool(), customer_transfer() (+73 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (51): customer_create(), customer_update(), follow_by_customer(), follow_detail(), assign_customer(), batch_claim_customers(), check_duplicate_customer(), claim_customer() (+43 more)
|
||||
|
||||
### Community 7 - "Community 7"
|
||||
Cohesion: 0.08
|
||||
Nodes (56): accumulate_stop_products(), aggregate_contract_product_plan_qtys(), assert_contract_qty_for_arrange(), _bucket_for_plan(), build_contract_qty_reminder_payload(), collect_plan_contract_qty_checks(), contract_product_has_fixed_qty(), effective_arranged_total() (+48 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (61): accumulate_stop_products(), aggregate_contract_product_plan_qtys(), assert_contract_qty_for_arrange(), auto_start_execute_approved_contracts(), _bucket_for_plan(), build_contract_qty_reminder_payload(), collect_plan_contract_qty_checks(), contract_ids_linked_to_plan() (+53 more)
|
||||
|
||||
### Community 8 - "Community 8"
|
||||
Cohesion: 0.17
|
||||
Nodes (22): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+14 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (32): approve_quote(), can_user_approve(), create_approval_records(), delete_pending_approvals(), get_quote_approval(), invalidate_all_approvals(), list_quote_approvals(), Any (+24 more)
|
||||
|
||||
### Community 9 - "Community 9"
|
||||
Cohesion: 0.10
|
||||
Nodes (48): download_reimburse_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes(), cell_str(), _ids_visible_in_web_tree(), import_reimburse_workbook() (+40 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (53): download_reimburse_import_template(), clue_import_template(), customer_import_template(), product_import_template(), build_annotated_result_bytes(), build_applicant_label(), build_expense_path_labels(), build_import_template_bytes() (+45 more)
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.11
|
||||
Nodes (39): approve_settlement_legacy(), cancel_settlement(), create_settlement(), delete_settlement(), disburse_settlement(), export_unsettled_plans(), _generate_settlement_no(), get_settlement() (+31 more)
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.10
|
||||
Nodes (57): cancel_apply(), create_apply(), create_disburse(), delete_applies(), delete_disburses(), export_urea_applies(), get_apply(), get_disburse() (+49 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (40): PlVehicleUreaApply, PlVehicleUreaDisburse, 车辆尿素申请 pl_vehicle_urea_apply, 车辆尿素发放登记 pl_vehicle_urea_disburse, Decimal, VehicleUreaApplyCreate, VehicleUreaApplyRead, VehicleUreaApplyUpdate (+32 more)
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.08
|
||||
Nodes (40): AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest, UserCreate (+32 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.05
|
||||
Nodes (147): clue_check_convert(), clue_check_duplicate(), clue_detail(), clue_export(), clue_follow_statistics(), clue_import(), clue_list(), clue_mine() (+139 more)
|
||||
Cohesion: 0.04
|
||||
Nodes (183): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_convert(), clue_create(), clue_delete() (+175 more)
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.11
|
||||
Nodes (33): PlPlanDelivery, PlPlanDeliveryProduct, PlPlanLoadProduct, 运输计划-装货段产品明细 pl_plan_load_product, 运输计划-送货段 pl_plan_delivery(plan 1:N), 运输计划-送货段产品明细 pl_plan_delivery_product, PlanArchiveDeliveryBlock, PlanArchiveLoadBlock (+25 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (30): archive_plan(), archive_plan_draft(), get_plan(), update_plan_driver_feedback(), update_plan_site_feedback(), PlPlanChange, 计划变更记录表 pl_plan_change, PlanArchiveBody (+22 more)
|
||||
|
||||
### Community 15 - "Community 15"
|
||||
Cohesion: 0.12
|
||||
Nodes (13): BxReimburseApply, BxReimburseApproval, BxReimburseDetail, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseInvoiceBriefOut, ReimburseInvoiceLinkIn, Any, Session (+5 more)
|
||||
Nodes (16): generate_uuid(), BxReimburseApply, BxReimburseApproval, BxReimburseDetail, BxReimburseInvoice, BxReimburseOffset, 报销单勾选的发票附件(同一发票可勾选多个附件,各占一条)。, ReimburseInvoiceBriefOut (+8 more)
|
||||
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.36
|
||||
Nodes (7): list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局), SysEthnic
|
||||
Cohesion: 0.14
|
||||
Nodes (15): BxAdvanceApply, BxAdvanceApproval, AdvanceService, Any, Session, 同一节点多次审批时,取 approval_time 最新的一条作为当前节点状态。, 返回全部审批动作,按时间正序排列,用于展示完整审批历史。, current_month_bounds() (+7 more)
|
||||
|
||||
### Community 17 - "Community 17"
|
||||
Cohesion: 0.09
|
||||
Nodes (42): 返回 (作废, 归档)。现场链接实际走入库/出库单公共页。, _resolve_io_order_link_flags(), _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images() (+34 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (29): _build_public_page(), _build_site_product_read(), _format_file_size(), get_public_site(), _get_site_link_by_token(), _parse_feedback_images(), Session, UploadFile (+21 more)
|
||||
|
||||
### Community 18 - "Community 18"
|
||||
Cohesion: 0.16
|
||||
Nodes (36): BxApplyListExportBody, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse(), export_approved_by_me_reimburses(), export_my_reimburses() (+28 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (38): bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse(), delete_reimburse() (+30 more)
|
||||
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.14
|
||||
Nodes (41): PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanContractLink, PlanDeliveryBody, PlanLoadBody, assert_at_most_one_contract(), assert_delivery_products_in_selected_contract(), assert_load_products_in_selected_contract() (+33 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (79): create_plan_full(), 创建运输计划(完整表单:供方/需方 + 产品库产品 + 可选预选车辆,不自动安排运输), update_plan(), PlPlanContract, 运输计划-合同关联(分侧多选) pl_plan_contract, PlanContractLink, PlanDeliveryBody, PlanLoadBody (+71 more)
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.09
|
||||
Nodes (45): dump_export_row(), issue_status_label(), Any, Session, respond_xlsx(), status_label(), advance_issue_stats(), batch_offset() (+37 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (36): advance_issue_stats(), batch_offset(), export_advance_issues(), export_advance_issues_xlsx(), export_pending_payments(), export_processed_payments(), issue_advance(), list_advance_issues() (+28 more)
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
Cohesion: 0.18
|
||||
Nodes (36): PlVehicleRechargeApply, PlVehicleRechargeRecord, 车辆ETC/加油充值申请 pl_vehicle_recharge_apply, 车辆ETC/加油充值发放登记 pl_vehicle_recharge_record, 发放登记页:申请单 + 关联发放信息(左连接), VehicleRechargeApplyRead, VehicleRechargeDisburseBoardItem, VehicleRechargeRecordRead (+28 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (41): PlVehicleRechargeApply, PlVehicleRechargeRecord, 车辆ETC/加油充值申请 pl_vehicle_recharge_apply, 车辆ETC/加油充值发放登记 pl_vehicle_recharge_record, Decimal, 发放登记页:申请单 + 关联发放信息(左连接), VehicleRechargeApplyCreate, VehicleRechargeApplyRead (+33 more)
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.08
|
||||
Nodes (28): parse_admin_request_json(), Any, Request, 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `{, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, ApiCryptoError, _b64url_decode(), _b64url_encode() (+20 more)
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.12
|
||||
Nodes (35): PlPlanProductBrandQty, 计划产品归档品牌数量 pl_plan_product_brand_qty stop_product_id 为空:计划产品级汇总;非空:装货/送货段产品, _is_plan_level_row(), load_brand_qtys_by_plan_product_ids(), load_brand_qtys_by_stop_product_ids(), _parse_unit_price(), persist_plan_product_brand_qtys(), persist_stop_product_brand_qtys() (+27 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (24): PlPlanProductBrandQty, 计划产品归档品牌数量 pl_plan_product_brand_qty stop_product_id 为空:计划产品级汇总;非空:装货/送货段产品, _is_plan_level_row(), load_brand_qtys_by_plan_product_ids(), load_brand_qtys_by_stop_product_ids(), _parse_unit_price(), persist_plan_product_brand_qtys(), persist_stop_product_brand_qtys() (+16 more)
|
||||
|
||||
### Community 24 - "Community 24"
|
||||
Cohesion: 0.19
|
||||
@@ -338,64 +344,64 @@ Cohesion: 0.22
|
||||
Nodes (8): CustomerAssignPoolBody, CustomerCheckDuplicateBody, CustomerClaimBody, CustomerDealBody, CustomerDetailBody, CustomerIntoPoolBody, CustomerTransferBody, CRM 客户管理 Pydantic Schemas
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.15
|
||||
Nodes (24): list_vehicles(), _vehicle_to_read(), PlCert, PlDocumentReminder, 证件到期提醒表 pl_document_reminder, CertRead, CertRow, SnapshotCertRead (+16 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (40): create_vehicle(), delete_vehicle(), export_vehicles(), get_vehicle(), list_personnel(), list_vehicles(), _personnel_to_read(), 导出车辆列表(当前筛选全量,或 ids 已选)。 (+32 more)
|
||||
|
||||
### Community 28 - "Community 28"
|
||||
Cohesion: 0.12
|
||||
Nodes (52): PlFreightSettlement, PlFreightSettlementApproval, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, _advance_after_approval(), _approval_to_dict(), can_user_approve_settlement(), cancel_draft_settlement() (+44 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (61): PlFreightSettlement, PlFreightSettlementApproval, PlFreightSettlementTransport, PlRemittanceVoucher, 运费结算表 pl_freight_settlement, 运费结算审批 pl_freight_settlement_approval, 结算单-运输关联表 pl_freight_settlement_transport, 汇款凭证表 pl_remittance_voucher (+53 more)
|
||||
|
||||
### Community 29 - "Community 29"
|
||||
Cohesion: 0.10
|
||||
Nodes (68): register_quote_routes(), accept_quote(), assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value() (+60 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (48): assert_quote_editable_for_update(), _build_quote_filters(), calculate_quote_amount(), create_new_version(), create_quote(), _decimal_value(), _enrich_contact_fields(), _enrich_supplier_name() (+40 more)
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
Cohesion: 0.16
|
||||
Nodes (26): clear_target_categories(), compute_level(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+18 more)
|
||||
|
||||
### Community 31 - "Community 31"
|
||||
Cohesion: 0.17
|
||||
Nodes (28): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), export_inventory(), _generate_batch_no() (+20 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (31): _apply_inventory_product_update(), _apply_inventory_update(), _base_query(), create_inventory(), create_link_for_plan(), delete_inventory(), export_inventory(), _generate_batch_no() (+23 more)
|
||||
|
||||
### Community 32 - "Community 32"
|
||||
Cohesion: 0.16
|
||||
Nodes (25): change_password(), create_user(), get_user(), get_user_with_relations(), _hash_password(), list_post_ids_for_user(), list_user_ids_bound_to_post(), list_users() (+17 more)
|
||||
|
||||
### Community 33 - "Community 33"
|
||||
Cohesion: 0.14
|
||||
Nodes (26): contact_add(), contact_by_customer(), contact_delete(), contact_detail(), contact_set_primary(), contact_update(), create_contact(), get_contact() (+18 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (32): contact_add(), contact_birthday(), contact_by_customer(), contact_decision(), contact_delete(), contact_detail(), contact_list(), contact_primary() (+24 more)
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.14
|
||||
Nodes (21): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+13 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (24): create_workflow(), delete_workflow(), get_workflow(), get_workflow_by_biz_type(), list_workflows(), Session, save_workflow_nodes(), update_workflow() (+16 more)
|
||||
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.18
|
||||
Nodes (36): clear_portal_workflow(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_bx_user_mapping(), load_runtime_settings() (+28 more)
|
||||
|
||||
### Community 36 - "Community 36"
|
||||
Cohesion: 0.17
|
||||
Nodes (29): _assert_brand_deletable(), barcode_exists(), category_code_exists(), create_category(), create_product(), generate_auto_product_no(), generate_barcode(), generate_product_no() (+21 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (86): _alias_row_to_dict(), _assert_brand_deletable(), barcode_exists(), _brand_row_to_dict(), _build_category_tree(), category_code_exists(), _category_row_to_dict(), _collect_category_with_ancestors() (+78 more)
|
||||
|
||||
### Community 37 - "Community 37"
|
||||
Cohesion: 0.10
|
||||
Nodes (53): check_document_expiry(), document_reminder_stats(), DocumentReminderExportBody, export_document_reminders(), export_inventory_ledger(), get_inventory_ledger(), get_summary(), InventoryLedgerExportBody (+45 more)
|
||||
Nodes (48): check_document_expiry(), document_reminder_stats(), export_document_reminders(), export_inventory_ledger(), get_inventory_ledger(), get_summary(), list_document_reminders(), list_transactions() (+40 more)
|
||||
|
||||
### Community 38 - "Community 38"
|
||||
Cohesion: 0.31
|
||||
Nodes (9): decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), Any, 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。, Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。, 从请求体解析用户名、密码。 返回 (username, password, error_message);error_message 非空时表示失败。 (+1 more)
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.08
|
||||
Nodes (43): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+35 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (28): bind_biz(), delete_attachment(), download_file(), list_by_biz(), _parse_id_list(), preview_attachment(), Session, UploadFile (+20 more)
|
||||
|
||||
### Community 40 - "Community 40"
|
||||
Cohesion: 0.11
|
||||
Nodes (33): assert_user_is_duty_staff(), build_dict_value_from_label(), DutyBizError, ensure_dict_data(), grab(), list_duty_staff_users(), normalize_person_name(), _pad_hhmm() (+25 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (36): DutyAssignmentIn, DutyDaySaveBody, DutyGrabBody, DutySlotSaveIn, 值班排班 Pydantic schemas, build_dict_value_from_label(), ensure_dict_data(), grab() (+28 more)
|
||||
|
||||
### Community 41 - "Community 41"
|
||||
Cohesion: 0.22
|
||||
Nodes (27): export_inbound(), _export_orders(), export_outbound(), _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound() (+19 more)
|
||||
Nodes (28): export_inbound(), _export_orders(), export_outbound(), _get_by_plan(), get_inbound(), get_inbound_by_plan(), _get_order(), get_outbound() (+20 more)
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 0.19
|
||||
@@ -403,51 +409,51 @@ Nodes (32): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_r
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.10
|
||||
Nodes (33): BxExportBodyBase, create_invoice(), delete_invoice(), export_invoice_wallets(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices() (+25 more)
|
||||
Nodes (32): create_invoice(), delete_invoice(), export_invoice_wallets(), get_mine_wallet_summary(), list_invoice_ledgers(), list_invoice_wallets(), list_invoices(), Request (+24 more)
|
||||
|
||||
### Community 44 - "Community 44"
|
||||
Cohesion: 0.19
|
||||
Nodes (28): apply_biz_backfill(), BackfillRule, BizRef, build_biz_index(), count_target_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows() (+20 more)
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 0.30
|
||||
Nodes (48): AttachmentDownloadUrlBody, DemoXlsxColumnSpec, DemoXlsxExportBody, DeptCreateBody, DeptExportBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody (+40 more)
|
||||
Cohesion: 0.22
|
||||
Nodes (59): AttachmentDownloadUrlBody, demo_xlsx_export(), DemoXlsxColumnSpec, DemoXlsxExportBody, DeptCreateBody, DeptExportBody, DeptUpdateBody, DictDataCreateBody (+51 more)
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
Cohesion: 0.15
|
||||
Nodes (39): PlTransportDriverStopFeedback, PlTransportSiteStopFeedback, 运输单-司机按段附件回传 pl_transport_driver_stop_feedback, 运输单-现场按段回传 pl_transport_site_stop_feedback, _direction_label(), _dump_product_feedbacks(), _dump_urls(), _get_driver_feedback_row() (+31 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (45): PlPlanDeliveryProduct, PlPlanLoadProduct, PlTransportDriverStopFeedback, PlTransportSiteStopFeedback, 运输计划-装货段产品明细 pl_plan_load_product, 运输计划-送货段产品明细 pl_plan_delivery_product, 运输单-司机按段附件回传 pl_transport_driver_stop_feedback, 运输单-现场按段回传 pl_transport_site_stop_feedback (+37 more)
|
||||
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 0.11
|
||||
Nodes (35): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records() (+27 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (49): Session, recognize_cert(), RecognizeCertBody, cancel_apply(), create_apply(), create_record(), delete_applies(), delete_records() (+41 more)
|
||||
|
||||
### Community 48 - "Community 48"
|
||||
Cohesion: 0.08
|
||||
Nodes (62): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), batch_assign_owner(), batch_submit_contract_approval(), _contract_period_key(), contract_row_to_dict() (+54 more)
|
||||
Nodes (87): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), 接口菜单权限守卫。super_admin 直接放行。, require_menu_code(), _apply_contract_entity_fields(), batch_assign_owner(), batch_submit_contract_approval(), _build_contract_filters() (+79 more)
|
||||
|
||||
### Community 49 - "Community 49"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): IoOrderItemPatch, IoOrderItemRead, PublicIoOrderFeedback, PublicIoOrderHistoryProductRead, PublicIoOrderItemFeedback, PublicIoOrderStopFeedback, PublicIoOrderStopProductFeedback, 入库单 / 出库单 Pydantic schemas
|
||||
Cohesion: 0.14
|
||||
Nodes (24): _attach_history_products(), _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date() (+16 more)
|
||||
|
||||
### Community 50 - "Community 50"
|
||||
Cohesion: 0.08
|
||||
Nodes (78): ContractGapExportBody, PlanExportBody, DbInboundOutbound, DbPurchasePlan, PlDriver, PlPlanLoad, PlTransportDbLink, 司机表 pl_driver(兼容旧表,迁移后逐步废弃) (+70 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (63): PlPlanDelivery, PlPlanLoad, PlTransportDbLink, 运输计划-装货段 pl_plan_load(plan 1:1), 运输计划-送货段 pl_plan_delivery(plan 1:N), 运输-地磅出入库关联 pl_transport_db_link, _apply_plan_quantity_delta(), apply_stop_dibang_options() (+55 more)
|
||||
|
||||
### Community 51 - "Community 51"
|
||||
Cohesion: 0.22
|
||||
Nodes (21): _address_to_read(), _build_address_query(), create_transport_address(), delete_transport_address(), export_transport_addresses(), _get_address(), get_transport_address(), list_all_transport_addresses() (+13 more)
|
||||
|
||||
### Community 52 - "Community 52"
|
||||
Cohesion: 0.13
|
||||
Nodes (26): _assert_editable(), _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile (+18 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (19): _build_public_page(), _format_file_size(), _get_inventory_by_token(), get_public_inventory(), _parse_feedback_images(), Session, UploadFile, 地磅出入库单 · 工厂现场人员免登录公共 API (+11 more)
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 0.20
|
||||
Nodes (7): _FakeQuery, _FakeSession, _plan(), 现场链接生成条件:装货/送货段含山峡或云栋客户, test_external_stops_do_not_require_site_link(), test_internal_delivery_requires_site_link(), test_legacy_plan_customer_fallback()
|
||||
Cohesion: 0.18
|
||||
Nodes (10): plan_requires_site_link(), Session, 装货或送货段任一段客户为山峡/云栋时,需要生成现场链接。, _FakeQuery, _FakeSession, _plan(), 现场链接生成条件:装货/送货段含山峡或云栋客户, test_external_stops_do_not_require_site_link() (+2 more)
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.19
|
||||
Nodes (32): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _change_row_to_dict(), create_contract_change(), create_contract_template(), _enrich_change_rows(), execute_change(), export_contract_changes() (+24 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (30): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), _change_row_to_dict(), create_contract_change(), create_contract_template(), _enrich_change_rows(), execute_change(), export_contract_changes() (+22 more)
|
||||
|
||||
### Community 55 - "Community 55"
|
||||
Cohesion: 0.18
|
||||
@@ -455,55 +461,55 @@ Nodes (31): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_r
|
||||
|
||||
### Community 56 - "Community 56"
|
||||
Cohesion: 0.07
|
||||
Nodes (78): _attach_history_products(), _resolve_unit_label(), _as_date(), _build_driver_url(), _build_history_stop_reads(), _build_public_page(), _build_stop_product_reads(), _format_file_size() (+70 more)
|
||||
Nodes (69): _as_date(), _build_driver_url(), _build_history_stop_reads(), _build_public_page(), _build_stop_product_reads(), _format_file_size(), _format_plan_date(), get_public_transport() (+61 more)
|
||||
|
||||
### Community 57 - "Community 57"
|
||||
Cohesion: 0.21
|
||||
Nodes (22): clear_target_products(), count_target_rows(), _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings() (+14 more)
|
||||
|
||||
### Community 58 - "Community 58"
|
||||
Cohesion: 0.11
|
||||
Nodes (24): create_expense_item(), delete_expense_item(), ExpenseItemExportBody, export_expense_items(), _flatten_expense_tree(), get_expense_item(), get_expense_item_tree(), Session (+16 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (21): create_expense_item(), delete_expense_item(), ExpenseItemExportBody, export_expense_items(), _flatten_expense_tree(), get_expense_item(), get_expense_item_tree(), Session (+13 more)
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 0.20
|
||||
Nodes (28): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+20 more)
|
||||
|
||||
### Community 60 - "Community 60"
|
||||
Cohesion: 0.24
|
||||
Nodes (5): MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ
|
||||
Cohesion: 0.19
|
||||
Nodes (7): _guess_preview_content_type(), MinIOStorage, Any, 从 MINIO_BASE_URL 解析公网 endpoint;未配置或与内网相同时复用 self.client。, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, MinIO 预签名下载 URL,携带原始文件名。, MinIO 预签名内联预览 URL(图片新标签页 / PDF iframe 等)。 上传时 put_object 未写 content_typ
|
||||
|
||||
### Community 61 - "Community 61"
|
||||
Cohesion: 0.06
|
||||
Nodes (50): pool_record_detail(), pool_record_list(), pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_update(), pool_rule_update_status() (+42 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (27): pool_rule_add(), pool_rule_delete(), pool_rule_detail(), pool_rule_execute(), pool_rule_update(), pool_rule_update_status(), create_pool_rule(), delete_pool_rules() (+19 more)
|
||||
|
||||
### Community 62 - "Community 62"
|
||||
Cohesion: 0.08
|
||||
Nodes (37): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_add() (+29 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (34): apply_crm_create_by_scope(), ensure_crm_customer_linked_row_in_scope(), ensure_crm_owner_row_in_scope(), Session, CRM 数据权限辅助(负责人 owner_user_id + 标准 create_by/create_dept_id)。, 客户子表(开票信息等):先校验关联客户 owner scope,否则校验 create_by。, _clear_default_for_customer(), create_invoice_info() (+26 more)
|
||||
|
||||
### Community 63 - "Community 63"
|
||||
Cohesion: 0.24
|
||||
Nodes (9): parse_resource_snapshot(), Any, 运输计划 - 安排运输时车辆/人员/证件资源快照 Schema, 从 ORM 文本列或 dict 解析快照。, SnapshotPersonnelRow, TransportResourceSnapshot, build_transport_resource_snapshot(), Session (+1 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (32): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), export_completed_tasks(), export_my_instances() (+24 more)
|
||||
|
||||
### Community 64 - "Community 64"
|
||||
Cohesion: 0.18
|
||||
Nodes (29): _dec(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env() (+21 more)
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 0.15
|
||||
Nodes (42): PlVehicleMaintenanceApply, PlVehicleMaintenanceProcess, 车辆维保申请 pl_vehicle_maintenance_apply, 车辆维保处理登记 pl_vehicle_maintenance_process, Decimal, VehicleMaintenanceApplyCreate, VehicleMaintenanceApplyRead, VehicleMaintenanceApplyReminder (+34 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (60): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), export_process_board(), get_apply(), get_process() (+52 more)
|
||||
|
||||
### Community 66 - "Community 66"
|
||||
Cohesion: 0.05
|
||||
Nodes (37): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), Session, read_customer_stop_pref(), menu_badge_stats() (+29 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (32): list_public_vehicle_plates(), Session, 地磅公共只读:免登车牌 options(现场填写页), 免登:按出入库/计划解析 tenant_no,返回 pl_vehicle 车牌(self + carrier)。, _resolve_tenant_no(), Session, read_customer_stop_pref(), menu_badge_stats() (+24 more)
|
||||
|
||||
### Community 67 - "Community 67"
|
||||
Cohesion: 0.12
|
||||
Nodes (36): get_password_hash(), Namespace, build_merged_users(), bx_role_labels(), check_minio(), check_mysql(), check_redis(), _clip() (+28 more)
|
||||
|
||||
### Community 68 - "Community 68"
|
||||
Cohesion: 0.22
|
||||
Nodes (19): _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator(), can_delete_by_creator(), is_super_admin(), normalize_user_info(), Any (+11 more)
|
||||
Cohesion: 0.19
|
||||
Nodes (23): delete_plan(), delete_carrier(), unbind_vehicle_driver(), delete_plan(), _actor_ids(), _actor_names(), assert_row_deletable_by_creator(), assert_rows_deletable_by_creator() (+15 more)
|
||||
|
||||
### Community 69 - "Community 69"
|
||||
Cohesion: 0.26
|
||||
@@ -518,52 +524,52 @@ Cohesion: 0.25
|
||||
Nodes (18): batch_generate_sample_codes(), batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), Any (+10 more)
|
||||
|
||||
### Community 72 - "Community 72"
|
||||
Cohesion: 0.14
|
||||
Nodes (30): _apply_contract_entity_fields(), _build_contract_filters(), _build_contract_name_from_parties(), _build_customer_address(), _calc_amount_with_tax(), contract_no_exists(), create_contract(), _decimal_value() (+22 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (27): CarrierExportBody, DriverExportBody, export_drivers(), export_personnel(), paste_recognize_commit(), PersonnelExportBody, 导出司机列表(当前筛选全量,或 ids 已选)。, 导出人员列表(当前筛选全量,或 ids 已选)。 (+19 more)
|
||||
|
||||
### Community 73 - "Community 73"
|
||||
Cohesion: 0.20
|
||||
Nodes (25): derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_oss_id_to_url(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+17 more)
|
||||
|
||||
### Community 74 - "Community 74"
|
||||
Cohesion: 0.14
|
||||
Nodes (27): invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_delete(), invoice_info_list(), invoice_info_set_default(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价) (+19 more)
|
||||
Cohesion: 0.16
|
||||
Nodes (13): invoice_info_add(), invoice_info_by_customer(), _invoice_info_by_customer_impl(), invoice_info_list(), invoice_info_set_default(), invoice_info_update(), 按客户ID查询开票信息(与 by-customer 等价), InvoiceInfoByCustomerBody (+5 more)
|
||||
|
||||
### Community 75 - "apply_crm_create_by_scope"
|
||||
Cohesion: 0.18
|
||||
Nodes (25): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), _get_weighing(), get_weighing_related(), _kg_to_ton() (+17 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (33): _apply_weighing_product_update(), _apply_weighing_update(), _base_query(), create_weighing(), delete_weighing(), export_weighing(), _get_weighing(), get_weighing_related() (+25 more)
|
||||
|
||||
### Community 76 - "opportunity_follow.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (32): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+24 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (27): _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids(), get_user_dept_id(), Session, 数据权限过滤(V0.3:基于角色 data_scope 的查询级行级过滤) data_scope 值: 1 = 全部数据 2 = 本部门数据 3 (+19 more)
|
||||
|
||||
### Community 77 - "Community 77"
|
||||
Cohesion: 0.11
|
||||
Nodes (12): get_wechat_pay_client(), get_wechat_pay_v2(), Any, 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo, 申请退款 Args: out_trade_no: 商户订单号 total_amount: 订单, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 total_f (+4 more)
|
||||
|
||||
### Community 78 - "Community 78"
|
||||
Cohesion: 0.15
|
||||
Nodes (23): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, AutoGenerateMonthlyResult, _base_query(), create_plan(), delete_plan(), _generate_plan_no(), get_plan(), _get_plan_by_id_only() (+15 more)
|
||||
Cohesion: 0.13
|
||||
Nodes (43): _apply_plan_product_update(), _apply_plan_update(), AutoGenerateMonthlyResult, _base_query(), create_plan(), export_plans(), _generate_plan_no(), get_plan() (+35 more)
|
||||
|
||||
### Community 79 - "PlCarrier"
|
||||
Cohesion: 0.19
|
||||
Nodes (18): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+10 more)
|
||||
Cohesion: 0.26
|
||||
Nodes (14): create_role(), get_role(), get_role_data_scope(), get_role_menu_ids(), list_roles(), Any, Session, 角色 CRUD(sys_role / sys_role_menu / sys_role_data_scope_detail) (+6 more)
|
||||
|
||||
### Community 80 - "resolve_crm_product"
|
||||
Cohesion: 0.06
|
||||
Nodes (91): approve_carrier(), bind_vehicle_driver(), CarrierExportBody, create_carrier(), create_driver(), create_personnel(), delete_carrier(), delete_driver() (+83 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (54): approve_carrier(), bind_vehicle_driver(), create_carrier(), create_driver(), create_personnel(), delete_driver(), delete_personnel(), export_carriers() (+46 more)
|
||||
|
||||
### Community 81 - "customer_follow.py"
|
||||
Cohesion: 0.13
|
||||
Nodes (23): _build_driver_url(), get_plan_arrange_info(), 获取计划已安排运输后的司机链接与地磅出入库关联(供查看弹窗复制简述/二维码)。, TransportSiteLinkRead, plan_requires_site_link(), Session, 运输计划:内置山峡/云栋客户判定(合同可免), 装货或送货段任一段客户为山峡/云栋时,需要生成现场链接。 (+15 more)
|
||||
Nodes (26): price_letter_add(), price_letter_detail(), price_letter_list(), price_letter_update(), price_letter_void(), create_price_letter(), get_price_letter(), list_price_letters() (+18 more)
|
||||
|
||||
### Community 82 - "list_duty_staff_users"
|
||||
Cohesion: 0.06
|
||||
Nodes (58): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_convert(), clue_create(), clue_delete() (+50 more)
|
||||
Cohesion: 0.50
|
||||
Nodes (4): customer_options(), 客户下拉选项(租户内只读,不做 owner 数据权限), CustomerOptionsBody, 客户下拉选项请求体(租户内只读搜索,不做 owner 数据权限)
|
||||
|
||||
### Community 83 - "Community 83"
|
||||
Cohesion: 0.10
|
||||
Nodes (42): _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer(), _build_approval_list_filters(), can_user_approve() (+34 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (32): _advance_contract_after_approval(), approve_contract(), approve_contract_by_contract_id(), approve_pass(), approve_reject(), approve_transfer(), _build_approval_list_filters(), can_user_approve() (+24 more)
|
||||
|
||||
### Community 84 - "Community 84"
|
||||
Cohesion: 0.23
|
||||
@@ -579,7 +585,7 @@ Nodes (18): align_contract_no_to_sign_date(), generate_contract_no(), date, Java
|
||||
|
||||
### Community 87 - "list_customers"
|
||||
Cohesion: 0.13
|
||||
Nodes (23): _alias_row_to_dict(), _brand_row_to_dict(), _build_category_tree(), _category_row_to_dict(), _collect_category_with_ancestors(), get_product_by_no(), list_categories(), list_category_tree() (+15 more)
|
||||
Nodes (21): API 路由包 — 山峡化工生产一体化门户, delete_leave(), export_leaves(), get_leave(), _leave_local_callback(), leave_workflow_callback(), LeaveExportBody, list_leaves() (+13 more)
|
||||
|
||||
### Community 88 - "CrmProduct"
|
||||
Cohesion: 0.23
|
||||
@@ -590,20 +596,20 @@ Cohesion: 0.19
|
||||
Nodes (22): PlOcrUsageMonth, 阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计), assert_quota_available(), _build_ocr_client(), compress_image_bytes(), current_usage_month(), _first_attachment_url(), get_or_create_usage_row() (+14 more)
|
||||
|
||||
### Community 90 - "WechatMessageService"
|
||||
Cohesion: 0.12
|
||||
Nodes (22): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), operlog_detail(), operlog_export(), operlog_list(), OperLogExportBody, Session (+14 more)
|
||||
Cohesion: 0.16
|
||||
Nodes (23): operlog_detail(), operlog_export(), operlog_list(), OperLogExportBody, Session, 导出操作日志(当前筛选全量,或 ids 已选)。, 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info() (+15 more)
|
||||
|
||||
### Community 91 - "unsettled_plans_q_filter"
|
||||
Cohesion: 0.21
|
||||
Nodes (16): get_web_auth_menu_codes(), 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。, _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), _map_role_name_to_web(), Session, Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析 (+8 more)
|
||||
Cohesion: 0.27
|
||||
Nodes (11): _expand_with_ancestor_menu_ids(), _granted_menu_ids_for_user(), iter_user_menu_perm_codes(), Session, 角色仅勾选按钮(F)时,补齐祖先 C/M 菜单 id,便于前端匹配 :list 路由。, 用户通过角色关联得到的菜单权限标识(sys_menu.perms,与前端 meta.menuCode 对齐)。, 用户是否在 sys_user_role 中绑定了至少一个有效角色。, 根据用户关联角色解析 Web 端 role(admin / super_admin)。 (+3 more)
|
||||
|
||||
### Community 92 - "Community 92"
|
||||
Cohesion: 0.45
|
||||
Nodes (11): _customer_base_query(), get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics(), get_source_statistics(), get_trend_statistics() (+3 more)
|
||||
|
||||
### Community 93 - "api_request_log_middleware.py"
|
||||
Cohesion: 0.19
|
||||
Nodes (30): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, _assignment_dict(), build_public_url(), _count_active_assignments(), _day_dict() (+22 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (31): DutyAssignment, DutyDay, DutySlot, 值班排班模型 — docs/superpowers/specs/2026-08-14-duty-schedule-design.md, assert_user_is_duty_staff(), _assignment_dict(), build_public_url(), _count_active_assignments() (+23 more)
|
||||
|
||||
### Community 94 - "assert_contract_editable_for_update"
|
||||
Cohesion: 0.60
|
||||
@@ -614,68 +620,68 @@ Cohesion: 0.38
|
||||
Nodes (14): _cargo_stats(), get_dashboard_stats(), get_inbound_by_cargo(), get_inbound_by_partner_cargo(), get_outbound_by_cargo(), get_outbound_by_partner_cargo(), _partner_cargo_stats(), Session (+6 more)
|
||||
|
||||
### Community 96 - "minio_url.py"
|
||||
Cohesion: 0.23
|
||||
Nodes (21): _apply_plan_update(), get_plan_related(), format_datetime(), _create_by_name(), datetime_end_of_day(), fmt_date(), fmt_datetime(), inventory_date_to_api() (+13 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (15): format_datetime(), get_current_time(), parse_datetime(), datetime, _plan_type_to_business_type(), 按运输计划单据类型解析地磅往来单位(不区分 CRM 合同类型)。 - 入库单 inbound:供方 → party_a,其次 supplier_nam, resolve_partner_company(), _normalize_plan_date() (+7 more)
|
||||
|
||||
### Community 97 - "contact.py"
|
||||
Cohesion: 0.10
|
||||
Nodes (44): _advance_list_filters(), advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _export_advance_rows() (+36 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (42): _advance_list_filters(), advance_pending_approval_stats(), advance_status_counts(), approve_advance(), approved_by_me(), create_advance(), delete_advance(), _export_advance_rows() (+34 more)
|
||||
|
||||
### Community 98 - "LocalStorage"
|
||||
Cohesion: 0.35
|
||||
Nodes (11): create_tenant(), get_tenant(), list_tenants(), Any, Session, _row_to_dict(), soft_delete_tenant(), tenant_no_exists() (+3 more)
|
||||
|
||||
### Community 99 - "redis_client.py"
|
||||
Cohesion: 0.29
|
||||
Nodes (12): build_name_pinyin_abbr(), normalize_name_pinyin_abbr(), 名称拼音首字母缩写:库内存小写,检索时大小写不敏感。, 保存时解析拼音字段。 - submitted_provided=True:用提交值(空则按 name 生成) - 否则:已有非空 existi, resolve_name_pinyin_abbr(), test_chinese_and_alnum(), test_empty_and_whitespace(), test_resolve_not_submitted_empty_existing_generates() (+4 more)
|
||||
Cohesion: 0.24
|
||||
Nodes (20): register_quote_routes(), accept_quote(), _ensure_quote_in_scope(), generate_pdf(), generate_share(), get_quote(), get_quote_detail(), _get_quote_in_scope() (+12 more)
|
||||
|
||||
### Community 100 - "price_letter_detail"
|
||||
Cohesion: 0.27
|
||||
Nodes (15): Settings, BaseSettings, apply_renumber(), build_mapping(), fetch_products(), format_new_product_no(), load_settings_env(), main() (+7 more)
|
||||
|
||||
### Community 101 - "tenant.py"
|
||||
Cohesion: 0.10
|
||||
Nodes (35): create_vehicle(), get_vehicle(), update_vehicle(), _vehicle_to_detail(), calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, PlVehicle (+27 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (14): calc_age_from_chinese_id_card(), date, 从 18 位身份证号计算周岁。号码不完整或出生日期无效时返回 None。, Session, 运输计划 - 人员 upsert 与车辆-人员关联保存, 按 18 位身份证号重算 pl_personnel.age,仅更新算出值与库中不一致的记录。返回更新条数。, 按 personnelId → phone → name 弱匹配 upsert,返回 personnel_id。, refresh_personnel_ages_from_id_card() (+6 more)
|
||||
|
||||
### Community 102 - "BaseStorage"
|
||||
Cohesion: 0.18
|
||||
Nodes (21): cancel_apply(), create_apply(), create_process(), delete_applies(), delete_processes(), export_applies(), export_process_board(), get_apply() (+13 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (16): pool_customer_assign(), pool_customer_claim(), pool_record_detail(), pool_record_list(), get_pool_record(), list_pool_records(), Any, Session (+8 more)
|
||||
|
||||
### Community 103 - "pl_internal_customer.py"
|
||||
Cohesion: 0.05
|
||||
Nodes (61): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+53 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (17): get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta(), snapshot_oper_log_meta(), _format_summary(), oper_log() (+9 more)
|
||||
|
||||
### Community 104 - "apply_crm_create_by_scope"
|
||||
Cohesion: 0.24
|
||||
Nodes (18): DeliverySlipPrintRead, PlanDeliveryRead, build_delivery_slip_print(), _customer_key(), _delivery_matches_customer(), get_delivery_slip_print_context(), list_delivery_print_customers(), _merge_stop_products() (+10 more)
|
||||
Cohesion: 0.26
|
||||
Nodes (15): DeliveryPrintCustomerOption, DeliverySlipPrintRead, build_delivery_slip_print(), _customer_key(), _delivery_matches_customer(), get_delivery_slip_print_context(), list_delivery_print_customers(), _merge_stop_products() (+7 more)
|
||||
|
||||
### Community 105 - "pool_customer_assign"
|
||||
Cohesion: 0.33
|
||||
Nodes (13): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), Any (+5 more)
|
||||
|
||||
### Community 106 - "site.py"
|
||||
Cohesion: 0.22
|
||||
Nodes (16): PlanLoadRead, compute_contract_gap_sides(), compute_plan_gap_sides_from_stops(), 按段次汇总计划是否仍有合同缺口(supplier=装货侧,demander=送货侧)。, stop_contract_gap(), resolve_load_customer_name(), _compile(), test_both_external_no_contracts_gaps_both() (+8 more)
|
||||
Cohesion: 0.19
|
||||
Nodes (16): ApiCryptoMiddleware, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client(), _is_crypto_api(), _json_error_response(), _mark_nonce_once(), _nonce_key() (+8 more)
|
||||
|
||||
### Community 107 - "apply_pl_scope"
|
||||
Cohesion: 0.33
|
||||
Nodes (11): create_leave(), get_leave(), list_leaves(), Any, Session, _row_to_dict(), soft_delete_leave(), update_leave() (+3 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (41): DocumentReminderExportBody, InventoryLedgerExportBody, ApiRequestLogCRUD, Session, list_ethnics(), Any, Session, 民族码表 CRUD(全局 sys_ethnic) (+33 more)
|
||||
|
||||
### Community 108 - "statistics.py"
|
||||
Cohesion: 0.20
|
||||
Nodes (24): count_source_rows(), derive_source_url(), fetch_portal_admin_id(), fetch_source_rows(), legacy_id_to_str(), load_runtime_settings(), load_settings_env(), load_user_mapping() (+16 more)
|
||||
|
||||
### Community 109 - "test_pl_plan_stop_rules.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (31): _extract_qty(), _fmt_qty(), normalize_stop_dibang_fields(), Any, Decimal, 运输计划多段:内部客户地磅默认值与数量平衡校验, 地磅默认勾选以本段客户是否为内部客户(山峡/云栋)为准。, 归一化段次地磅勾选与方向:勾选但方向缺失/none 时按本段客户补默认方向。 (+23 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (39): _extract_qty(), _fmt_qty(), normalize_stop_dibang_fields(), Any, Decimal, 运输计划多段:内部客户地磅默认值与数量平衡校验, 地磅默认勾选以本段客户是否为内部客户(山峡/云栋)为准。, 归一化段次地磅勾选与方向:勾选但方向缺失/none 时按本段客户补默认方向。 (+31 more)
|
||||
|
||||
### Community 110 - "pool_rule.py"
|
||||
Cohesion: 0.12
|
||||
Nodes (26): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+18 more)
|
||||
Cohesion: 0.25
|
||||
Nodes (13): day_detail(), delete_assignment(), duty_user_options(), _enrich_assign_names(), ensure_duty_dict(), month_summary(), Session, 指定用户时补全 personName(用 nick_name)。 (+5 more)
|
||||
|
||||
### Community 111 - "test_pl_public_transport_history.py"
|
||||
Cohesion: 0.24
|
||||
Nodes (8): generate_id(), camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType
|
||||
Cohesion: 0.25
|
||||
Nodes (7): camel_to_snake(), CRUDBase, get_model_attr(), HistoryCRUD, Any, Session, ModelType
|
||||
|
||||
### Community 112 - "merge_duplicate_crm_customers.py"
|
||||
Cohesion: 0.26
|
||||
@@ -690,28 +696,28 @@ Cohesion: 0.39
|
||||
Nodes (10): create_site(), get_site(), list_sites(), Any, Session, _row_to_dict(), site_code_exists(), soft_delete_site() (+2 more)
|
||||
|
||||
### Community 115 - "site.py"
|
||||
Cohesion: 0.25
|
||||
Nodes (13): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+5 more)
|
||||
Cohesion: 0.22
|
||||
Nodes (15): get_storage(), download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url(), normalize_storage_path(), 报销附件存储适配 — 复用门户 app.core.storage,对外保持 bx 协议。 (+7 more)
|
||||
|
||||
### Community 116 - "Community 116"
|
||||
Cohesion: 0.17
|
||||
Nodes (28): batch_insert_quote_products(), calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product() (+20 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (27): calculate_subtotal(), _decimal_value(), delete_products_by_quote_id(), _ensure_quote_parent_scope(), _get_field(), get_quote_product(), insert_quote_product(), list_products_by_quote_ids() (+19 more)
|
||||
|
||||
### Community 117 - "pl_plan_list_attachments.py"
|
||||
Cohesion: 0.26
|
||||
Nodes (11): _apply_plan_product_update(), apply_product_snapshot_to_plan(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。 require_on_shelf=False 用于运输计划联动地磅等历, resolve_crm_product(), _product() (+3 more)
|
||||
Nodes (11): apply_product_snapshot_to_inventory(), apply_product_snapshot_to_plan(), ProductSnapshot, Session, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。 require_on_shelf=False 用于运输计划联动地磅等历, resolve_crm_product(), _product() (+3 more)
|
||||
|
||||
### Community 118 - "Community 118"
|
||||
Cohesion: 0.20
|
||||
Nodes (24): batch_insert_contract_products(), calculate_subtotal(), _decimal_value(), delete_price_tiers_by_contract_id(), delete_products_by_contract_id(), _get_field(), insert_contract_product(), _letter_oss_ids_to_json() (+16 more)
|
||||
|
||||
### Community 119 - "Community 119"
|
||||
Cohesion: 0.11
|
||||
Nodes (37): VehiclePersonnelRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name(), _missing_field_labels() (+29 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (38): CertRow, VehiclePersonnelRow, _cert_row_complete(), collect_required_cert_errors(), _find_cert_for_required(), get_required_personnel_cert_names(), is_huolala_trailer_no(), match_required_cert_name() (+30 more)
|
||||
|
||||
### Community 120 - "list_duty_staff_users"
|
||||
Cohesion: 0.15
|
||||
Nodes (3): BaseStorage, OSSStorage, 浏览器内联预览 URL;默认实现为普通访问地址。
|
||||
Cohesion: 0.17
|
||||
Nodes (3): BaseStorage, QiniuStorage, 浏览器内联预览 URL;默认实现为普通访问地址。
|
||||
|
||||
### Community 121 - "_build_user_info_payload"
|
||||
Cohesion: 0.18
|
||||
@@ -722,8 +728,8 @@ Cohesion: 0.39
|
||||
Nodes (10): create_post(), get_post(), list_posts(), post_code_exists(), Any, Session, _row_to_dict(), soft_delete_post() (+2 more)
|
||||
|
||||
### Community 123 - "customer_options"
|
||||
Cohesion: 0.11
|
||||
Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (33): CRM 报价单 API 路由 — 挂接到 crm.router, total_pages(), QuoteApproverSettingSaveBody, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody (+25 more)
|
||||
|
||||
### Community 124 - "LocalStorage"
|
||||
Cohesion: 0.27
|
||||
@@ -731,15 +737,15 @@ Nodes (11): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_dat
|
||||
|
||||
### Community 125 - "ethnic.py"
|
||||
Cohesion: 0.06
|
||||
Nodes (65): _build_history_page(), _build_page(), _get_by_token(), _history_status_label(), _make_handlers(), _models(), _parse_history_date(), date (+57 more)
|
||||
Nodes (60): PlInboundOrder, PlInboundOrderItem, PlInboundOrderItemBrandQty, PlOutboundOrder, PlOutboundOrderItem, PlOutboundOrderItemBrandQty, 出库明细品牌数量 pl_outbound_order_item_brand_qty, 运输计划-入库单 pl_inbound_order (+52 more)
|
||||
|
||||
### Community 126 - "oper_log.py"
|
||||
Cohesion: 0.15
|
||||
Nodes (5): LocalStorage, process_image_content(), Path, 带下载文件名的访问 URL;默认实现为普通访问地址。, 处理图片内容,如果是 HEIC 格式则转换为 JPEG
|
||||
Cohesion: 0.13
|
||||
Nodes (6): convert_heic_to_jpeg(), OSSStorage, process_image_content(), 带下载文件名的访问 URL;默认实现为普通访问地址。, 将 HEIC/HEIF 格式转换为 JPEG 格式, 处理图片内容,如果是 HEIC 格式则转换为 JPEG
|
||||
|
||||
### Community 127 - "Any"
|
||||
Cohesion: 0.13
|
||||
Nodes (36): PlanStopProductRead, _append_legacy_plan_product_rows(), _append_stop_product_rows(), build_plan_archive_export_rows(), _empty_product_fields(), _format_date_value(), _format_plate_display(), _get_stop_archive_actual_qty() (+28 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (51): PlanDeliveryRead, PlanLoadRead, PlanStopProductRead, _append_legacy_plan_product_rows(), _append_stop_product_rows(), build_plan_archive_export_rows(), _empty_product_fields(), _format_date_value() (+43 more)
|
||||
|
||||
### Community 128 - "api_crypto.py"
|
||||
Cohesion: 0.60
|
||||
@@ -762,52 +768,52 @@ Cohesion: 0.24
|
||||
Nodes (11): extract_minio_object_key(), join_relative_urls(), normalize_oss_storage_url(), MinIO 附件 URL 规范化(数据迁移共用)。 背景 ---- CRM / 地磅 / 报销与 shanxia2.0 共用同一 MinIO(bucket 默, 业务表 OSS ID 串 → 相对 URL 串(用于客户证照、跟进附件等)。, 去掉预签名 query(``?X-Amz-...``)。, 将绝对/相对 URL 规范为 MinIO object key(不含 bucket)。, 迁移 CRM ``sys_oss`` 行:``url`` + ``file_name`` → 门户相对路径。 (+3 more)
|
||||
|
||||
### Community 133 - "inventory_id.py"
|
||||
Cohesion: 0.18
|
||||
Nodes (6): convert_heic_to_jpeg(), _guess_preview_content_type(), QiniuStorage, 文件存储工具模块 支持多种存储方式: 1. 本地存储 (local) - 默认 2. 七牛云存储 (qiniu) - 推荐生产环境使用 3. 阿里云OSS (, 按对象键后缀推断内联预览 Content-Type(纠正上传时未写入 MIME 的情况)。, 将 HEIC/HEIF 格式转换为 JPEG 格式
|
||||
Cohesion: 0.12
|
||||
Nodes (16): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方详情 — Java: CrmSupplierInfoController.getInfo, 新增供方 — Java: CrmSupplierInfoController.add, 修改供方 — Java: CrmSupplierInfoController.edit, 删除供方 — Java: CrmSupplierInfoController.remove, supplier_info_add(), supplier_info_delete(), supplier_info_detail() (+8 more)
|
||||
|
||||
### Community 134 - "list_contacts"
|
||||
Cohesion: 0.40
|
||||
Nodes (9): create_oss(), create_oss(), get_oss_by_id(), get_oss_by_url(), Session, 按主键 id 查询附件(兼容旧 CRM 雪花 oss_id 迁入后的记录), 将 fileUrl 或旧 CRM 数字 ossId 解析为 MinIO 相对路径。 门户新上传把相对路径写入业务字段;迁入合同附件仍存数字 ossId, resolve_storage_path() (+1 more)
|
||||
Cohesion: 0.23
|
||||
Nodes (14): _claims_from_auth(), _format_body_bytes(), _persist_log(), Any, Request, 统一记录 API 请求/响应出入参的中间件, _redact_obj(), _schedule_persist_log() (+6 more)
|
||||
|
||||
### Community 135 - "context.py"
|
||||
Cohesion: 0.33
|
||||
Nodes (8): allocate_next_biz_no(), _format_biz_no(), _prefix_for(), datetime, Session, 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, BizNoKind
|
||||
|
||||
### Community 136 - "get_db_current_user_optional"
|
||||
Cohesion: 0.06
|
||||
Nodes (92): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), CompletedTaskExportBody, create_process_def(), delete_process_def(), _enrich_task_list(), export_completed_tasks() (+84 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (56): CompletedTaskExportBody, MyInstanceExportBody, PendingTaskExportBody, ProcessDefCreateBody, ProcessDefExportBody, ProcessDefUpdateBody, PublishVersionBody, 审批意见:前端传 commentText,兼容 comment。 (+48 more)
|
||||
|
||||
### Community 137 - "iter_user_menu_perm_codes"
|
||||
Cohesion: 0.17
|
||||
Nodes (15): change_current_user_password(), get_current_user_profile(), public_quote_share(), Request, Session, 获取当前用户信息(与 sys_user 字段对应)。, 公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT), get_current_user() (+7 more)
|
||||
Cohesion: 0.29
|
||||
Nodes (8): get_current_user(), get_current_user_by_token(), Session, 根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期), 获取当前用户(sync 依赖,配合 sync 路由在线程池执行,避免阻塞事件循环)。, get_db_current_user_optional(), Session, 有 Bearer 且为 admin/super_admin 时返回上下文,否则 None(供三方 H5 无登录调用)。
|
||||
|
||||
### Community 138 - "Community 138"
|
||||
Cohesion: 0.33
|
||||
Nodes (19): check_python(), create_venv(), ensure_dirs(), ensure_valid_venv(), ensure_venv_and_runtime(), install_dependencies(), is_running(), log_error() (+11 more)
|
||||
|
||||
### Community 139 - "customer_options"
|
||||
Cohesion: 0.08
|
||||
Nodes (42): export_plans(), PlanExportBody, 导出计划列表(当前筛选全量,或 ids 已选)。, export_weighing(), 导出地磅单列表(当前筛选全量,或 ids 已选)。, WeighingExportBody, delete_leave(), export_leaves() (+34 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (34): export_depts(), export_dict_types(), export_menus(), export_role_management(), export_sites(), export_users(), 导出站点列表(当前筛选全量,或 ids 已选)。, 导出角色列表(当前筛选全量,或 ids 已选)。 (+26 more)
|
||||
|
||||
### Community 140 - "crm_export_columns.py"
|
||||
Cohesion: 0.31
|
||||
Nodes (13): PlanStopProductBody, Decimal, 段 address 为空时,按经纬度从运输地址库补全 full_address。, _resolve_plan_product_id(), resolve_stop_address_from_library(), _to_decimal(), _plan_product_row(), test_resolve_plan_product_id_by_explicit_id() (+5 more)
|
||||
Cohesion: 0.24
|
||||
Nodes (12): DbSequence, 地磅(db)模块数据模型 — 对齐 docs/sql/db_tables.sql, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), Session, 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+4 more)
|
||||
|
||||
### Community 141 - "web_login_rsa_public_key"
|
||||
Cohesion: 0.24
|
||||
Nodes (13): get_product(), soft_delete_product(), assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session (+5 more)
|
||||
Cohesion: 0.28
|
||||
Nodes (11): assert_products_allowed_for_supplier(), enrich_products_with_hazard_flags(), get_supplier_hazard_flags(), product_allowed(), Any, Session, 批量回填明细行 isToxic/isExplosive(来自产品主数据,供前端切换主体剔除)。, test_dual_requires_both() (+3 more)
|
||||
|
||||
### Community 142 - "clear_pl_plan_instance_data.py"
|
||||
Cohesion: 0.46
|
||||
Nodes (7): _count(), _delete(), _engine_from_env(), main(), Engine, 清空运输计划(pl_plan)及关联实例数据,便于测试环境重新走流程。 用法(在 backend 目录、已配置 .env DATABASE_URL): p, _table_exists()
|
||||
|
||||
### Community 143 - "create_from_quote"
|
||||
Cohesion: 0.28
|
||||
Nodes (8): list_products(), 分页查询产品列表 keyword 默认匹配:名称 / 编号 / 拼音首字母。 选择器场景可关闭编号匹配、开启规格型号匹配(避免短数字误命中产品, 产品/客户列表 keyword:名称/编号/拼音首字母 OR 匹配。, 选择器:名称/拼音/规格型号,不匹配产品编号。, test_list_customer_options_keyword_includes_name_and_pinyin(), test_list_customers_keyword_includes_name_and_pinyin(), test_list_products_keyword_includes_name_and_pinyin(), test_list_products_keyword_selector_mode_excludes_product_no_includes_model()
|
||||
Cohesion: 0.24
|
||||
Nodes (12): get_last_month_range(), month_range(), date, Session, 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生, run_auto_generate_monthly_plans(), default_execution_status() (+4 more)
|
||||
|
||||
### Community 144 - "response.py"
|
||||
Cohesion: 0.04
|
||||
Nodes (104): _apply_exclude_follow_status_filter(), _apply_follow_status_filter(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), create_plan(), delete_plan() (+96 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (79): _apply_exclude_follow_status_filter(), _apply_follow_status_filter(), _build_driver_url(), cancel_plan(), cancel_plan_wait_notice(), count_plans_by_contract(), create_from_contract(), _determine_plan_type() (+71 more)
|
||||
|
||||
### Community 145 - "list_products"
|
||||
Cohesion: 0.31
|
||||
@@ -822,8 +828,8 @@ Cohesion: 0.37
|
||||
Nodes (17): check_env(), check_python(), create_venv(), init_env(), install_dependencies(), log_error(), log_info(), log_success() (+9 more)
|
||||
|
||||
### Community 148 - "plan_has_incomplete_hazard_cert_exists"
|
||||
Cohesion: 0.19
|
||||
Nodes (26): put_plan_side_contracts(), put_plan_stop_contracts(), PlanContractGapRead, PlanProductRead, is_internal_customer_name(), build_plan_contract_gap_read(), _clear_legacy_side_contracts(), _delivery_stop_gap_expr() (+18 more)
|
||||
Cohesion: 0.25
|
||||
Nodes (19): PlanContractGapRead, PlanProductRead, _clear_legacy_side_contracts(), _delivery_stop_gap_expr(), _demander_gap_expr(), _legacy_demander_gap_expr(), _legacy_supplier_gap_expr(), list_plan_contract_gaps() (+11 more)
|
||||
|
||||
### Community 149 - ".to_tenant_user_dict"
|
||||
Cohesion: 0.29
|
||||
@@ -833,33 +839,45 @@ Nodes (6): create_leave(), Config, LeaveCreate, LeaveResponse, LeaveUpdate, Pyda
|
||||
Cohesion: 0.40
|
||||
Nodes (5): _avatar_url_field(), _build_user_info_payload(), 与 web-admin 静态路由 meta.roles(admin/super_admin)对齐的单元素数组。, 与 web-admin `userInfo` 字段约定一致。, _web_role_list()
|
||||
|
||||
### Community 152 - "register_local_callback"
|
||||
Cohesion: 0.30
|
||||
Nodes (12): PlCarrier, assert_carrier_eligible_for_transport(), carrier_agreement_expired(), carrier_audit_approved(), carrier_eligible_for_transport(), carrier_qualification_complete(), date, 资质附件均为选填,保留函数签名供兼容调用。 (+4 more)
|
||||
|
||||
### Community 153 - "web_login_rsa_public_key"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): 简易搜索:计划编号 / 客户(供应商) / 车牌 / 承运商名称。, unsettled_plans_q_filter(), 未结算计划简易搜索:q 应覆盖计划编号/客户/车牌/承运商名称。, test_unsettled_plans_q_filter_includes_carrier_and_plate()
|
||||
Cohesion: 0.23
|
||||
Nodes (10): check_customer_protect_time(), pool_recovery_job(), Session, 每天凌晨1点:检查保护期到期客户,跟进次数不足则退回公海, 每天早上9点:保护期到期提醒(3天内到期且跟进不足), _recycle_to_pool(), remind_customer_recycle(), warn_customer_recycle() (+2 more)
|
||||
|
||||
### Community 155 - "WechatMessageService"
|
||||
Cohesion: 0.15
|
||||
Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import WechatMes, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n, 发送催单通知给配送员 Args: deliver_openid: 配送员openid, 发送模板消息 Args: openid: 用户openid template_ (+1 more)
|
||||
|
||||
### Community 156 - "list_product_options"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): list_product_options(), 产品下拉 options:keyword 按产品名称/拼音首字母模糊匹配,不匹配产品编号。, test_list_product_options_keyword_only_filters_product_name()
|
||||
Cohesion: 0.42
|
||||
Nodes (11): apply_archive_inventory_for_plan(), apply_archive_inventory_for_plan_stops(), apply_brand_stock_change(), get_or_create_inventory(), Decimal, Session, qty_delta_for_plan(), 计划归档按产品+品牌写入库存台账与流水。 直销单 (direct) 首期不记账;入库增加、出库扣减(允许负库存,不做不足拦截)。 调整归档时先按 plan_i (+3 more)
|
||||
|
||||
### Community 157 - "datetime_parse.py"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): parse_optional_plan_datetime(), datetime, 运输计划相关日期时间解析:前端 date-picker 仅传 YYYY-MM-DD。
|
||||
|
||||
### Community 158 - "create_from_quote"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id
|
||||
Cohesion: 0.25
|
||||
Nodes (10): _cert_url_blank(), plan_has_hazard_product_exists(), plan_has_incomplete_hazard_cert_exists(), 证书 URL 为空(NULL / 空串 / 纯空白)。, 列表筛选:计划下存在 CRM 标识为易制毒/易制爆的产品。, 列表筛选:存在危化产品且至少一张必需证书未上传。, _compile(), 危化品证上传列表筛选:EXISTS 子查询应覆盖 CRM 危化标识与证书缺口。 (+2 more)
|
||||
|
||||
### Community 162 - ".to_tenant_user_dict"
|
||||
Cohesion: 0.42
|
||||
Nodes (7): default_settlement_clause(), test_advance_payment_clause(), test_arrive_payment_clause(), test_empty_falls_back_to_arrive(), test_monthly_settlement_clause_uses_label(), test_unknown_falls_back_to_arrive(), test_volume_quarterly_other_labels()
|
||||
|
||||
### Community 165 - "list_duty_staff_users"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): list_duty_staff_users(), 按固定 id 查找「值班人员」角色;找不到再按角色名兜底。, 本租户启用且绑定「值班人员」角色的用户(公开页 users / 管理端 options)。, resolve_duty_staff_role_id(), test_list_duty_staff_users_empty_when_no_role(), test_resolve_duty_staff_role_id_by_fixed_id()
|
||||
|
||||
### Community 168 - "ContractListQuery"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): ContractExportBody, ContractListQuery, POST /contract/export 筛选条件(无分页或沿用 list 参数), GET /contract/list 查询参数(对齐 CrmContractBo + pageNum/pageSize)
|
||||
|
||||
### Community 173 - "resolve_create_time_bounds"
|
||||
Cohesion: 0.07
|
||||
Nodes (68): _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url(), create_transport(), _ensure_driver_access_token() (+60 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (65): _apply_plan_logistics_from_payload(), _apply_transport_arrange_fields(), arrange_transport(), _assert_vehicle_carrier_eligible(), _build_arrange_result(), _build_driver_url(), create_transport(), _ensure_driver_access_token() (+57 more)
|
||||
|
||||
### Community 179 - "test_pl_vehicle_personnel_photo_schema.py"
|
||||
Cohesion: 0.27
|
||||
@@ -892,22 +910,22 @@ Nodes (6): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时
|
||||
## Knowledge Gaps
|
||||
- **30 isolated node(s):** `Config`, `Config`, `Config`, `Config`, `Config` (+25 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **19 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **22 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `generate_uuid()` connect `resolve_create_time_bounds` to `Community 0`, `_filter_export_rows_by_ids`, `Community 4`, `Community 5`, `Community 6`, `context.py`, `list_contacts`, `Community 8`, `get_db_current_user_optional`, `Community 11`, `Community 14`, `Community 15`, `response.py`, `Community 17`, `Community 19`, `plan_has_incomplete_hazard_cert_exists`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `Community 27`, `Community 28`, `Community 29`, `Community 32`, `Community 33`, `Community 34`, `Community 36`, `Community 37`, `Community 39`, `Community 40`, `Community 43`, `Community 46`, `Community 48`, `Community 50`, `Community 51`, `Community 52`, `Community 54`, `Community 61`, `Community 62`, `Community 65`, `Community 67`, `Community 70`, `Community 71`, `Community 72`, `Community 74`, `apply_crm_create_by_scope`, `Community 78`, `PlCarrier`, `resolve_crm_product`, `Community 83`, `allocate_next_biz_no`, `CrmProduct`, `pl_ocr_service.py`, `api_request_log_middleware.py`, `contact.py`, `LocalStorage`, `tenant.py`, `pool_customer_assign`, `apply_pl_scope`, `dict_type.py`, `dept.py`, `Community 116`, `Community 118`, `_build_user_info_payload`, `post.py`, `LocalStorage`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.165) - this node is a cross-community bridge._
|
||||
- **Why does `Settings` connect `price_letter_detail` to `Community 64`, `Community 66`, `Community 35`, `Community 67`, `Community 73`, `Community 42`, `statistics.py`, `Community 44`, `Community 55`, `Community 57`, `Community 59`, `Community 30`?**
|
||||
_High betweenness centrality (0.114) - this node is a cross-community bridge._
|
||||
- **Why does `BaseModel` connect `Community 1` to `Community 0`, `Community 6`, `get_db_current_user_optional`, `Community 10`, `customer_options`, `Community 11`, `Community 12`, `Community 13`, `Community 15`, `response.py`, `Community 14`, `Community 18`, `dict_data.py`, `Community 20`, `.to_tenant_user_dict`, `plan_has_incomplete_hazard_cert_exists`, `Community 19`, `Community 17`, `Community 21`, `Community 26`, `Community 27`, `Community 31`, `Community 33`, `Community 34`, `Community 37`, `Community 39`, `Community 41`, `Community 43`, `Community 45`, `resolve_create_time_bounds`, `Community 47`, `Community 48`, `Community 49`, `Community 50`, `Community 51`, `Community 52`, `Community 56`, `Community 58`, `Community 61`, `Community 62`, `Community 63`, `crm_export_columns.py`, `Community 66`, `Community 65`, `Community 74`, `apply_crm_create_by_scope`, `Community 78`, `resolve_crm_product`, `customer_follow.py`, `list_duty_staff_users`, `WechatMessageService`, `test_pl_public_link_archived.py`, `contact.py`, `tenant.py`, `BaseStorage`, `apply_crm_create_by_scope`, `pool_rule.py`, `Community 119`, `customer_options`, `ethnic.py`?**
|
||||
- **Why does `generate_uuid()` connect `Community 15` to `Community 0`, `_filter_export_rows_by_ids`, `Community 2`, `Community 4`, `Community 5`, `Community 6`, `context.py`, `Community 8`, `get_db_current_user_optional`, `Community 11`, `crm_export_columns.py`, `Community 14`, `create_from_quote`, `response.py`, `Community 16`, `Community 19`, `plan_has_incomplete_hazard_cert_exists`, `Community 21`, `Community 23`, `Community 24`, `Community 25`, `web_login_rsa_public_key`, `Community 27`, `Community 28`, `Community 29`, `list_product_options`, `Community 32`, `Community 33`, `Community 34`, `Community 36`, `Community 37`, `Community 39`, `Community 40`, `Community 43`, `resolve_create_time_bounds`, `Community 46`, `Community 48`, `Community 50`, `Community 51`, `Community 54`, `Community 61`, `Community 62`, `Community 65`, `Community 67`, `Community 70`, `Community 71`, `Community 72`, `apply_crm_create_by_scope`, `Community 78`, `PlCarrier`, `resolve_crm_product`, `customer_follow.py`, `Community 83`, `allocate_next_biz_no`, `CrmProduct`, `pl_ocr_service.py`, `api_request_log_middleware.py`, `minio_url.py`, `LocalStorage`, `tenant.py`, `BaseStorage`, `pool_customer_assign`, `apply_pl_scope`, `test_pl_plan_stop_rules.py`, `dict_type.py`, `dept.py`, `Community 116`, `Community 118`, `_build_user_info_payload`, `post.py`, `LocalStorage`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.156) - this node is a cross-community bridge._
|
||||
- **Why does `Settings` connect `price_letter_detail` to `Community 64`, `Community 35`, `Community 67`, `Community 73`, `Community 42`, `statistics.py`, `Community 44`, `Community 52`, `Community 55`, `Community 57`, `Community 59`, `Community 30`?**
|
||||
_High betweenness centrality (0.112) - this node is a cross-community bridge._
|
||||
- **Why does `BaseModel` connect `Community 1` to `Community 0`, `Community 2`, `inventory_id.py`, `Community 6`, `get_db_current_user_optional`, `Community 10`, `customer_options`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `response.py`, `Community 17`, `Community 18`, `dict_data.py`, `Community 20`, `.to_tenant_user_dict`, `plan_has_incomplete_hazard_cert_exists`, `Community 19`, `Community 21`, `Community 26`, `Community 27`, `Community 31`, `Community 33`, `Community 34`, `Community 37`, `SoftDeleteModel`, `Community 39`, `Community 41`, `ContractListQuery`, `Community 40`, `Community 45`, `resolve_create_time_bounds`, `Community 47`, `Community 48`, `Community 49`, `Community 51`, `Community 52`, `Community 56`, `Community 11`, `Community 58`, `Community 61`, `Community 65`, `Community 66`, `Community 72`, `Community 74`, `apply_crm_create_by_scope`, `Community 78`, `resolve_crm_product`, `customer_follow.py`, `list_duty_staff_users`, `list_customers`, `WechatMessageService`, `test_pl_public_link_archived.py`, `contact.py`, `BaseStorage`, `apply_crm_create_by_scope`, `apply_pl_scope`, `pool_rule.py`, `Community 119`, `customer_options`, `ethnic.py`?**
|
||||
_High betweenness centrality (0.109) - this node is a cross-community bridge._
|
||||
- **Are the 30 inferred relationships involving `DbUserContext` (e.g. with `InventoryExportBody` and `InventoryRelatedData`) actually correct?**
|
||||
_`DbUserContext` has 30 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **What connects `API 路由包 — 山峡化工生产一体化门户`, `返回运营端角色下拉选项(label=库中角色名,value=Web 角色码)。`, `返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo)。 供申请人/审批人等选择场景使用,返回本租户全部有效` to the rest of the system?**
|
||||
_670 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
_671 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.0810126582278481 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.07196627521830774 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05376972530683811 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.04521510096575944 - nodes in this community are weakly interconnected._
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "label": "test_pl_plan_single_contract_rules.py", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "label": "test_assert_at_most_one_contract_allows_zero_or_one()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "label": "test_assert_at_most_one_contract_rejects_two()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery", "label": "_FakeQuery", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_filter", "label": ".filter()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_all", "label": ".all()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L43"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb", "label": "_FakeDb", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_init", "label": ".__init__()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L48"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_query", "label": ".query()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L51"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_load_with_products", "label": "_load_with_products()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_passes_when_all_match", "label": "test_assert_load_products_in_contract_passes_when_all_match()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L73"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_rejects_outside", "label": "test_assert_load_products_in_contract_rejects_outside()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_when_no_contract", "label": "test_assert_load_products_skips_when_no_contract()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L88"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_internal_customer", "label": "test_assert_load_products_skips_internal_customer()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L107"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_plan_products_outside_contract_raises", "label": "test_assert_plan_products_outside_contract_raises()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L130"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_delivery_with_products", "label": "_delivery_with_products()", "file_type": "code", "source_file": "tests/test_pl_plan_single_contract_rules.py", "source_location": "L145"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_delivery_products_in_contract_passes_when_all_match", "label": "test_assert_delivery_products_in_contract_passes_when_all_match()", "fLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "label": "test_crm_contract_reedit_to_draft.py", "file_type": "code", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "label": "test_editable_statuses()", "file_type": "code", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "label": "test_assert_allows_editable()", "file_type": "code", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "label": "test_assert_rejects_non_editable()", "file_type": "code", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L23"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "app_crud_crm_contract", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test_crm_contract_reedit_to_draft.py", "source_location": "L23", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "callee": "frozenset", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L11", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "callee": "frozenset", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L12", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "callee": "assert_contract_editable_for_update", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L20", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L24", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L24"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "assert_contract_editable_for_update", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L25", "receiver": null}], "callable_nids": ["users_wuzilong_worLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_ensure_contract_in_scope", "label": "_ensure_contract_in_scope()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L53"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_contract_row_in_scope", "label": "_get_contract_row_in_scope()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L74"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L80"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L88"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L106"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L129"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L139"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L143"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_get_default_invoice_info", "label": "_get_default_invoice_info()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L161"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L173"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L252"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "app/crud/crm/contract.py", "source_location": "L256"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_list_contracts", "label": "list_contractsLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_py", "label": "pl_plan_stop_service.py", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contract_link", "label": "_contract_link()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L47"}, {"id": "plplancontract", "label": "PlPlanContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_attach_stop_brand_qtys", "label": "_attach_stop_brand_qtys()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L55"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_list_product_name", "label": "_resolve_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_apply_stop_list_product_name", "label": "_apply_stop_list_product_name()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_product", "label": "_load_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L99"}, {"id": "plplanloadproduct", "label": "PlPlanLoadProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_delivery_stop_product", "label": "_delivery_stop_product()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L118"}, {"id": "plplandeliveryproduct", "label": "PlPlanDeliveryProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_load_stop_contract_rows_grouped", "label": "load_stop_contract_rows_grouped()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L137"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_contracts_for_stop", "label": "_contracts_for_stop()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L160"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_to_decimal", "label": "_to_decimal()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L175"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_resolve_stop_address_from_library", "label": "resolve_stop_address_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L184"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_service_enrich_stop_addresses_from_library", "label": "enrich_stop_addresses_from_library()", "file_type": "code", "source_file": "app/services/pl_plan_stop_service.py", "source_location": "L225"}, {"id": "planloadbody", "label": "PlanLoadBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_service.py"}, {"id": "plandeliverybody", "label": "PlanDeliveryBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/apLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4Line truncated
|
||||
{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":2207,"mtime_ns":1783208067881286091,"hash":"313e6da0e91d743ce891dd283458c79b50b24c4d909dc96ca7b3fd9d2bfa5013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6958,"mtime_ns":1784032424448146538,"hash":"c2fb44aedb880733de28afa7f92d2c1c681eb600f821bbeba2bcda3933e5bc37"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4Line truncated
|
||||
+1880
-1681
File diff suppressed because it is too large.
Load diff
@@ -2,23 +2,24 @@ import pytest
|
||||
|
||||
from app.crud.crm.contract import (
|
||||
CONTRACT_EDITABLE_STATUSES,
|
||||
CONTRACT_NON_EDITABLE_STATUSES,
|
||||
assert_contract_editable_for_update,
|
||||
)
|
||||
|
||||
|
||||
def test_editable_statuses():
|
||||
assert CONTRACT_EDITABLE_STATUSES == frozenset({"draft", "approving", "approved"})
|
||||
assert "executing" not in CONTRACT_EDITABLE_STATUSES
|
||||
assert CONTRACT_NON_EDITABLE_STATUSES == frozenset({"finished"})
|
||||
assert CONTRACT_EDITABLE_STATUSES == frozenset(
|
||||
{"draft", "approving", "approved", "executing", "invalid"}
|
||||
)
|
||||
assert "finished" not in CONTRACT_EDITABLE_STATUSES
|
||||
assert "invalid" not in CONTRACT_EDITABLE_STATUSES
|
||||
|
||||
|
||||
def test_assert_allows_editable():
|
||||
for s in ("draft", "approving", "approved", None, ""):
|
||||
for s in ("draft", "approving", "approved", "executing", "invalid", None, ""):
|
||||
assert_contract_editable_for_update(s)
|
||||
|
||||
|
||||
def test_assert_rejects_non_editable():
|
||||
for s in ("executing", "finished", "invalid"):
|
||||
with pytest.raises(ValueError, match="才能修改"):
|
||||
assert_contract_editable_for_update(s)
|
||||
with pytest.raises(ValueError, match="已完成的合同不能修改"):
|
||||
assert_contract_editable_for_update("finished")
|
||||
@@ -2799,6 +2799,7 @@
|
||||
"2797": "code:python (@router.get(\"/customers\"))",
|
||||
"2798": "code:vue (<!-- 新增按钮 -->)",
|
||||
"2799": "code:python (if not codes:)",
|
||||
"2800": "合同结算方式:新增选项与第五条条款规则",
|
||||
"2801": "code:sql (CREATE TABLE `crm_customer_follow` ",
|
||||
"2802": "code:sql (CREATE TABLE `crm_customer_pool` ",
|
||||
"2803": "code:sql (CREATE TABLE `crm_customer_pool_rule` ",
|
||||
@@ -2828,8 +2829,11 @@
|
||||
"2827": "code:block3 (保存地磅单)",
|
||||
"2828": "code:block4 (backend/app/)",
|
||||
"2829": "code:block5 (web-admin/src/)",
|
||||
"2830": "运输计划产品字段:安排前必填",
|
||||
"2831": "Requirement: 运输计划归档支持暂存草稿",
|
||||
"2832": "code:block1 (若行带 personnelId 且存在 → 更新 pl_personnel 基础字段)",
|
||||
"2833": "code:json ({)",
|
||||
"2834": "parse_admin_request_json",
|
||||
"2835": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2836": "code:block2 (【运输安排】)",
|
||||
"2837": "code:ts ({)",
|
||||
@@ -2838,19 +2842,23 @@
|
||||
"2840": "code:json ({)",
|
||||
"2841": "code:block8 (/api/public/pl/transport)",
|
||||
"2842": "code:sql (ALTER TABLE pl_transport)",
|
||||
"2843": "default_settlement_clause",
|
||||
"2844": "code:block1 (PlPlanFormDialog)",
|
||||
"2845": "code:typescript (defaultTransportQty = products.reduce((s, p) => s + (p.quant)",
|
||||
"2846": "code:mermaid (flowchart TD)",
|
||||
"2847": "code:typescript (interface PlanCreateFullBody {)",
|
||||
"2848": "文件结构",
|
||||
"2849": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2850": "code:block2 (.app-layout-portal)",
|
||||
"2851": "code:block3 (beforeEach → MenuProcessor.getMenuList())",
|
||||
"2852": "resolve_create_time_bounds",
|
||||
"2853": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2854": "code:typescript (function canArrangeTransport(row: Plan) {)",
|
||||
"2855": "code:block3 (1. 校验计划、车辆、司机、危化品证书(现有))",
|
||||
"2856": "code:python (def _rotate_driver_access_token(transport: PlTransport) -> s)",
|
||||
"2857": "code:python (if existing_transport and existing_transport.transport_statu)",
|
||||
"2858": "code:mermaid (sequenceDiagram)",
|
||||
"2859": "File map",
|
||||
"2860": "code:block1 (计划专员:安排运输 + 勾选「生成地磅计划」)",
|
||||
"2861": "code:python (f\"{PUBLIC_WEB_ORIGIN}/#/public/db/inventory/{site_access_tok)",
|
||||
"2862": "code:mermaid (sequenceDiagram)",
|
||||
@@ -2862,37 +2870,56 @@
|
||||
"2868": "code:block7 (/api/public/db/inventory)",
|
||||
"2869": "code:json ({)",
|
||||
"2870": "code:python (site_access_token: Optional[str] = Field(alias=\"siteAccessTo)",
|
||||
"2871": "File map",
|
||||
"2872": "code:block1 (┌─────────────┬─────────────┬───────────────┬─────────────┐)",
|
||||
"2873": "code:block2 (┌─────────────────────────────────────────────┐)",
|
||||
"2874": "code:block3 (┌──────────┐)",
|
||||
"2875": "duty.ts",
|
||||
"2876": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2877": "code:json ({)",
|
||||
"2878": "code:sql (-- 菜单(示例 ID,实现时按现有 PL_* 规范))",
|
||||
"2879": "resetFormSlots",
|
||||
"2880": "clear_pl_plan_instance_data.py",
|
||||
"2881": "File map",
|
||||
"2882": "code:block1 (Step 0 基线文档与对照页 ✅ 已完成)",
|
||||
"2883": "code:block2 (已完成 Step 0 → Step 1 → Step 1b → Step 2(列表页))",
|
||||
"2884": "code:bash (# 前端开发)",
|
||||
"2885": "文件结构",
|
||||
"2886": "code:block1 (tenant_no = shanxia2.0)",
|
||||
"2887": "code:block2 (business_title = CRM客户管理)",
|
||||
"2888": "code:block3 (business_title = CRM客户管理)",
|
||||
"2889": "code:mermaid (flowchart LR)",
|
||||
"2890": "code:python (oper_log_meta: ContextVar[dict] = ContextVar(\"oper_log_meta\")",
|
||||
"2891": "文件结构",
|
||||
"2892": "code:sql (ALTER TABLE `pl_carrier`)",
|
||||
"2893": "code:block2 (qualificationComplete == true)",
|
||||
"2894": "报销申请列表 · 扩大每页条数选项(试点)",
|
||||
"2895": "code:sql (CREATE TABLE `pl_vehicle_recharge_apply` ",
|
||||
"2896": "code:sql (CREATE TABLE `pl_vehicle_recharge_record` ",
|
||||
"2897": "code:block3 (申请创建 ──→ pending(待发放))",
|
||||
"2898": "code:python (def _generate_apply_no(db: Session) -> str:)",
|
||||
"2899": "运输计划保存同步地磅日期 + 已安排禁仅保存",
|
||||
"2900": "code:block1 (创建申请 → pending)",
|
||||
"2901": "loadMonth",
|
||||
"2902": "calc_age_from_chinese_id_card",
|
||||
"2903": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2904": "code:block2 (.app-layout-portal)",
|
||||
"2905": "code:typescript (const currentTopPath = `/${route.path.split('/')[1]}`)",
|
||||
"2906": "code:block4 (portal-header-brand → flex-shrink: 0)",
|
||||
"2907": "code:block5 (beforeEach → MenuProcessor.getMenuList())",
|
||||
"2908": "合同详情 · 运输计划联动 Implementation Plan",
|
||||
"2909": "code:block1 (PATCH /api/transport/plan/{id}/hazard-cert-ready)",
|
||||
"2910": "code:python (# 伪代码)",
|
||||
"2911": "code:block3 ([计划含危化品])",
|
||||
"2912": "File map",
|
||||
"2913": "code:block1 (┌───────────────────────────────────────────────────────────)",
|
||||
"2914": "code:block2 (.app-layout-portal)",
|
||||
"2915": "门户首页「待办列表」汇总入口",
|
||||
"2916": "合同详情 · 运输计划联动 Design",
|
||||
"2917": "合同已安排数量 · 已归档用实际量",
|
||||
"2918": "运输计划表单 · 可安排数量",
|
||||
"2919": "design.md",
|
||||
"2920": "proposal.md",
|
||||
"2921": "code:block1 (1. 看下方「功能特征 → 模式」决策表,确定模式编号(如 P01、P12))",
|
||||
"2922": "code:block2 (page-head → panel → filter-block → list-toolbar → list-table)",
|
||||
"2923": "code:typescript (const viewSections = computed(() => [{)",
|
||||
@@ -3004,9 +3031,35 @@
|
||||
"3029": "tasks.md",
|
||||
"3030": "design.md",
|
||||
"3031": "proposal.md",
|
||||
"3032": "resolveDictValue",
|
||||
"3033": "File map",
|
||||
"3034": "code:json ({)",
|
||||
"3035": "File map",
|
||||
"3036": "门户首页侧栏选中项会话记忆 — 实现计划",
|
||||
"3037": "运输计划列表 · 合同列展示与提醒",
|
||||
"3038": "Requirement: 租户隔离",
|
||||
"3039": "Requirement: 租户隔离",
|
||||
"3040": "用户管理列表展示角色并可打开角色详情 — 设计文档",
|
||||
"3041": "门户首页侧栏选中项会话记忆",
|
||||
"3042": "TableHeightCalculator",
|
||||
"3043": ".to_tenant_user_dict",
|
||||
"3044": "assert_contract_editable_for_update",
|
||||
"3045": "unsettled_plans_q_filter",
|
||||
"3046": "用户列表角色展示与角色详情复用 — Implementation Plan",
|
||||
"3047": "运输计划表单 · 供/需客户与取/送地址互斥",
|
||||
"3048": "现场链接 · 现场记录设计",
|
||||
"3049": "workbench.vue",
|
||||
"3050": "H5-mobile",
|
||||
"3051": "tasks.md",
|
||||
"3052": "Requirement: 侧边栏菜单图标层级规则",
|
||||
"3053": "Requirement: 表格操作列固定在右侧",
|
||||
"3054": "pad",
|
||||
"3055": "merge_product_qty_maps",
|
||||
"3056": "util.js",
|
||||
"3057": "Vue",
|
||||
"3058": "Vue",
|
||||
"3059": "Requirement: 排序字段不在界面默认展示",
|
||||
"3060": "Requirement: 新增与编辑弹窗布局与视口留白",
|
||||
"3061": "spec.md",
|
||||
"3062": "spec.md",
|
||||
"3063": "Scenario: 代码评审检查项",
|
||||
@@ -3023,6 +3076,8 @@
|
||||
"3074": "Scenario: 代码评审检查项",
|
||||
"3075": "实现模式",
|
||||
"3076": "实现模式",
|
||||
"3077": "test_bx_reimburse_my_page_size.py",
|
||||
"3078": "assignmentMatchesFilter",
|
||||
"3079": "code:typescript (interface ViewField {)",
|
||||
"3080": "code:typescript (import { workOrderStatusLabel, workOrderStatusTagType } from)",
|
||||
"3081": "code:typescript (export type TagType = 'success' | 'warning' | 'danger' | 'in)",
|
||||
@@ -3040,6 +3095,7 @@
|
||||
"3093": "code:typescript (// <script setup> 中显式导入)",
|
||||
"3094": "code:html (<el-table-column prop=\"status\" label=\"状态\" min-width=\"90\" ali)",
|
||||
"3095": "spec.md",
|
||||
"3096": "zh_CN.js",
|
||||
"3098": "Requirement: 列表行查看弹窗(按钮 + 双击)",
|
||||
"3106": "Scenario: 新增列表页",
|
||||
"3116": "Scenario: 新增列表页",
|
||||
@@ -4444,12 +4500,10 @@
|
||||
"4565": "copyAttributesTo",
|
||||
"4566": "createSummary",
|
||||
"4567": "descendant",
|
||||
"4570": "each",
|
||||
"4574": "fireToggleAccordionEvent",
|
||||
"4575": "fireToggleAllAccordionsEvent",
|
||||
"4577": "freefallRtl",
|
||||
"4578": "freefallRtl$2",
|
||||
"4584": "get",
|
||||
"4586": "getAccordionChildren",
|
||||
"4587": "getLanguage",
|
||||
"4588": "getOpt",
|
||||
@@ -4539,7 +4593,6 @@
|
||||
"4735": "normalizeStyleValue",
|
||||
"4736": "option",
|
||||
"4737": "register",
|
||||
"4738": "register$1",
|
||||
"4739": "register$2",
|
||||
"4740": "styleValueToText",
|
||||
"4741": "index.js",
|
||||
@@ -4578,7 +4631,6 @@
|
||||
"4784": "getAutoLinkPattern",
|
||||
"4785": "handleEnter",
|
||||
"4786": "handleSpacebar",
|
||||
"4788": "hasProto",
|
||||
"4789": "hasProtocol",
|
||||
"4790": "isBracketOrSpace",
|
||||
"4791": "isElement",
|
||||
@@ -4589,14 +4641,11 @@
|
||||
"4800": "plugin.min.js",
|
||||
"4805": "plugin.min.js",
|
||||
"4806": "k",
|
||||
"4807": "m",
|
||||
"4809": "p",
|
||||
"4812": "not",
|
||||
"4813": "option",
|
||||
"4814": "parseCurrentLine",
|
||||
"4815": "register",
|
||||
"4816": "removeZwsp",
|
||||
"4819": "typeOf",
|
||||
"4820": "index.js",
|
||||
"4821": "plugin.js",
|
||||
"4823": "fireResizeEditor",
|
||||
@@ -4635,12 +4684,10 @@
|
||||
"4865": "e",
|
||||
"4868": "h",
|
||||
"4870": "plugin.min.js",
|
||||
"4871": "l",
|
||||
"4873": "o",
|
||||
"4875": "v",
|
||||
"4876": "option",
|
||||
"4877": "parse",
|
||||
"4878": "register",
|
||||
"4879": "register$1",
|
||||
"4880": "removeDraft",
|
||||
"4881": "restoreDraft",
|
||||
@@ -4674,7 +4721,6 @@
|
||||
"4920": "n",
|
||||
"4922": "p",
|
||||
"4926": "v",
|
||||
"4928": "never",
|
||||
"4929": "onSetupEditable",
|
||||
"4931": "option",
|
||||
"4932": "register",
|
||||
@@ -4686,7 +4732,6 @@
|
||||
"4938": "plugin.js",
|
||||
"4939": "plugin.js",
|
||||
"4940": "plugin.min.js",
|
||||
"4941": "o",
|
||||
"4942": "open",
|
||||
"4945": "setContent",
|
||||
"4946": "index.js",
|
||||
@@ -4700,14 +4745,12 @@
|
||||
"4957": "insertCodeSample",
|
||||
"4958": "isCodeSample",
|
||||
"4959": "isCodeSampleSelection",
|
||||
"4960": "isNonNullable",
|
||||
"4961": "isNullable",
|
||||
"4962": "plugin.js",
|
||||
"4964": "plugin.min.js",
|
||||
"4969": "option",
|
||||
"4970": "prismjs",
|
||||
"4971": "register",
|
||||
"4973": "register$2",
|
||||
"4974": "setup",
|
||||
"4976": "useGlobalPrismJS",
|
||||
"4977": "index.js",
|
||||
@@ -4726,7 +4769,6 @@
|
||||
"5008": "isTag",
|
||||
"5011": "plugin.js",
|
||||
"5012": "map",
|
||||
"5013": "b",
|
||||
"5017": "i",
|
||||
"5018": "plugin.min.js",
|
||||
"5022": "p",
|
||||
@@ -4769,7 +4811,6 @@
|
||||
"5095": "register",
|
||||
"5096": "register$1",
|
||||
"5097": "register$2",
|
||||
"5098": "setup",
|
||||
"5099": "shallow",
|
||||
"5101": "translateCategory",
|
||||
"5102": "tupleMap",
|
||||
@@ -4860,7 +4901,6 @@
|
||||
"5247": "nu$1",
|
||||
"5248": "nu$2",
|
||||
"5249": "OperatingSystem",
|
||||
"5250": "option",
|
||||
"5251": "oses",
|
||||
"5253": "parents",
|
||||
"5254": "path",
|
||||
@@ -4938,7 +4978,6 @@
|
||||
"5349": "C",
|
||||
"5352": "plugin.min.js",
|
||||
"5356": "S",
|
||||
"5359": "x",
|
||||
"5362": "option",
|
||||
"5363": "parseHelpTabsSetting",
|
||||
"5364": "pLoadI18nHtml",
|
||||
@@ -5108,7 +5147,6 @@
|
||||
"5580": "isCssPageRule",
|
||||
"5581": "isExclusiveMode",
|
||||
"5585": "isSkinContentCss",
|
||||
"5587": "isType",
|
||||
"5588": "isUniqueSelector",
|
||||
"5589": "plugin.js",
|
||||
"5591": "markUniqueSelector",
|
||||
@@ -5117,7 +5155,6 @@
|
||||
"5596": "k",
|
||||
"5597": "m",
|
||||
"5598": "o",
|
||||
"5600": "r",
|
||||
"5607": "option",
|
||||
"5608": "register",
|
||||
"5609": "removeCacheSuffix",
|
||||
@@ -5146,7 +5183,6 @@
|
||||
"5633": "o",
|
||||
"5634": "r",
|
||||
"5636": "t",
|
||||
"5637": "u",
|
||||
"5638": "monthsLong",
|
||||
"5639": "monthsShort",
|
||||
"5641": "option",
|
||||
@@ -5287,7 +5323,6 @@
|
||||
"5825": "composeAlphabeticBase26",
|
||||
"5826": "composeEntries",
|
||||
"5827": "composeList",
|
||||
"5828": "constant",
|
||||
"5830": "contains$1",
|
||||
"5831": "createBookmark",
|
||||
"5832": "createEntry",
|
||||
@@ -5421,7 +5456,6 @@
|
||||
"5993": "Ie",
|
||||
"5996": "plugin.min.js",
|
||||
"5999": "kt",
|
||||
"6000": "l",
|
||||
"6002": "Ln",
|
||||
"6003": "m",
|
||||
"6005": "mn",
|
||||
@@ -5542,7 +5576,6 @@
|
||||
"6153": "guess",
|
||||
"6154": "handleError",
|
||||
"6155": "handleInsert",
|
||||
"6156": "has",
|
||||
"6157": "hasAltSource",
|
||||
"6158": "hasDimensions",
|
||||
"6159": "hasLiveEmbeds",
|
||||
@@ -5562,7 +5595,6 @@
|
||||
"6175": "plugin.js",
|
||||
"6176": "loadedData",
|
||||
"6177": "a",
|
||||
"6181": "d",
|
||||
"6182": "de",
|
||||
"6190": "J",
|
||||
"6191": "plugin.min.js",
|
||||
@@ -5612,8 +5644,6 @@
|
||||
"6263": "plugin.js",
|
||||
"6264": "plugin.min.js",
|
||||
"6266": "plugin.min.js",
|
||||
"6270": "t",
|
||||
"6271": "onSetupEditable",
|
||||
"6273": "register$1",
|
||||
"6274": "register$2",
|
||||
"6275": "setup",
|
||||
@@ -5655,10 +5685,7 @@
|
||||
"6323": "plugin.js",
|
||||
"6324": "a",
|
||||
"6326": "d",
|
||||
"6327": "e",
|
||||
"6329": "plugin.min.js",
|
||||
"6330": "k",
|
||||
"6332": "n",
|
||||
"6334": "r",
|
||||
"6339": "option",
|
||||
"6340": "pickFile",
|
||||
@@ -5671,12 +5698,10 @@
|
||||
"6349": "getOnCancelCallback",
|
||||
"6350": "getOnSaveCallback",
|
||||
"6351": "isFunction",
|
||||
"6352": "isSimpleType",
|
||||
"6353": "plugin.js",
|
||||
"6354": "plugin.min.js",
|
||||
"6355": "i",
|
||||
"6356": "plugin.min.js",
|
||||
"6360": "s",
|
||||
"6361": "t",
|
||||
"6362": "option",
|
||||
"6365": "save",
|
||||
@@ -5712,7 +5737,6 @@
|
||||
"6408": "isMatchSpan",
|
||||
"6409": "isNonNullable",
|
||||
"6412": "isSimpleBoundary",
|
||||
"6414": "isString",
|
||||
"6415": "isText",
|
||||
"6416": "isText$1",
|
||||
"6418": "isType$1",
|
||||
@@ -5726,9 +5750,7 @@
|
||||
"6431": "j",
|
||||
"6432": "plugin.min.js",
|
||||
"6435": "M",
|
||||
"6436": "n",
|
||||
"6437": "P",
|
||||
"6443": "v",
|
||||
"6445": "X",
|
||||
"6448": "moveSelection",
|
||||
"6449": "next",
|
||||
@@ -5962,7 +5984,6 @@
|
||||
"6749": "Re",
|
||||
"6750": "rl",
|
||||
"6751": "ro",
|
||||
"6752": "s",
|
||||
"6753": "sl",
|
||||
"6754": "so",
|
||||
"6755": "st",
|
||||
@@ -6065,8 +6086,6 @@
|
||||
"6880": "hasAnyClasses",
|
||||
"6881": "htmlEscape",
|
||||
"6882": "insertTemplate",
|
||||
"6885": "isFunction",
|
||||
"6887": "isNullable",
|
||||
"6889": "isSimpleType",
|
||||
"6890": "isString",
|
||||
"6892": "plugin.js",
|
||||
@@ -6078,7 +6097,6 @@
|
||||
"6903": "m",
|
||||
"6905": "O",
|
||||
"6908": "w",
|
||||
"6911": "open",
|
||||
"6912": "parseAndSerialize",
|
||||
"6913": "register",
|
||||
"6914": "register$1",
|
||||
@@ -6093,7 +6111,6 @@
|
||||
"6925": "plugin.js",
|
||||
"6926": "plugin.min.js",
|
||||
"6928": "plugin.min.js",
|
||||
"6929": "o",
|
||||
"6930": "option",
|
||||
"6931": "register",
|
||||
"6932": "register$1",
|
||||
@@ -6169,7 +6186,6 @@
|
||||
"7045": "isProtocol",
|
||||
"7046": "isWordBoundary",
|
||||
"7047": "plugin.js",
|
||||
"7048": "map",
|
||||
"7049": "memoize",
|
||||
"7050": "plugin.min.js",
|
||||
"7052": "D",
|
||||
@@ -10132,10 +10148,6 @@
|
||||
"11023": "index.vue",
|
||||
"11025": "index.vue",
|
||||
"11026": "index.vue",
|
||||
"11027": "certMessage",
|
||||
"11028": "model",
|
||||
"11031": "unit",
|
||||
"11032": "index.vue",
|
||||
"11033": "commonPayload",
|
||||
"11034": "contractBasicFieldRows",
|
||||
"11035": "contractBasicRow1Fields",
|
||||
@@ -10148,7 +10160,6 @@
|
||||
"11042": "vehicle",
|
||||
"11043": "index.vue",
|
||||
"11044": "index.vue",
|
||||
"11045": "if",
|
||||
"11046": "{\n loading,\n plan,\n products,\n transport,\n freightSettlement,\n vehicleBundle,\n contractSnapshot,\n dibangRows,\n siteRows,\n loadDetail,\n resetDetail\n }",
|
||||
"11047": "rows",
|
||||
"11048": "index.vue",
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+899
-639
File diff suppressed because it is too large.
Load diff
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "label": "main.py", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_lifespan", "label": "lifespan()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L48"}, {"id": "fastapi", "label": "FastAPI", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_db_pool_keepalive_loop", "label": "_db_pool_keepalive_loop()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_error_json", "label": "_error_json()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L127"}, {"id": "jsonresponse", "label": "JSONResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_sqlalchemy_exception_handler", "label": "sqlalchemy_exception_handler()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L140"}, {"id": "request", "label": "Request", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py"}, {"id": "sqlalchemyerror", "label": "SQLAlchemyError", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_unhandled_exception_handler", "label": "unhandled_exception_handler()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L151"}, {"id": "exception", "label": "Exception", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/main.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_mask_secret", "label": "_mask_secret()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L182"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_root", "label": "root()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L204"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_health_check", "label": "health_check()", "file_type": "code", "source_file": "backend/app/main.py", "source_location": "L209"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_rationale_80", "label": "\u5b9a\u671f ping MySQL\uff0c\u907f\u514d\u8fdc\u7a0b\u5e93/NAT \u56de\u6536\u7a7a\u95f2 TCP \u540e\u9996\u8bf7\u6c42\u957f\u65f6\u95f4\u5361\u4f4f\u3002", "file_type": "rationale", "source_file": "backend/app/main.py", "source_location": "L80"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_rationale_141", "label": "\u6570\u636e\u5e93\u5f02\u5e38\uff1a\u8fd4\u56de JSON \u5e76\u4fdd\u7559 CORS \u5934\uff0c\u907f\u514d\u6d4f\u89c8\u5668\u53ea\u62a5\u8de8\u57df\u9519\u8bef", "file_type": "rationale", "source_file": "backend/app/main.py", "source_location": "L141"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_rationale_152", "label": "\u672a\u6355\u83b7\u5f02\u5e38\uff1a\u7edf\u4e00 JSON 500\uff0c\u786e\u4fdd\u8de8\u57df\u573a\u666f\u4e0b\u4ecd\u6709 Access-Control-Allow-Origin", "file_type": "rationale", "source_file": "backend/app/main.py", "source_location": "L152"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "target": "asyncio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "target": "contextlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_main_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/main.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_baLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_py", "label": "bx_codegen.py", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_generate_apply_code", "label": "generate_apply_code()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L15"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_parse_reimburse_date", "label": "parse_reimburse_date()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L40"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_parse_optional_date", "label": "parse_optional_date()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_format_reimburse_title", "label": "format_reimburse_title()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L67"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_is_auto_reimburse_title", "label": "is_auto_reimburse_title()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L71"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_preview_reimburse_title_seq", "label": "preview_reimburse_title_seq()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_allocate_reimburse_title_seq", "label": "allocate_reimburse_title_seq()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L94"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_generate_title", "label": "generate_title()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_resolve_reimburse_title", "label": "resolve_reimburse_title()", "file_type": "code", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L129"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_1", "label": "\u62a5\u9500\u5355\u53f7/\u6807\u9898\u751f\u6210\uff08\u4ece bx-backend \u8fc1\u79fb\uff0c\u589e\u52a0 tenant_no \u9694\u79bb\uff09\u3002", "file_type": "rationale", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_16", "label": "\u751f\u6210\u987a\u5e8f\u5355\u53f7\uff1a{prefix}{YYYYMMDD}{3\u4f4d\u5e8f\u53f7}\u3002 prefix \u793a\u4f8b\uff1aBYJ\uff08\u5907\u7528\u91d1\uff09\u3001BX\uff08\u62a5\u9500\uff09\u3002", "file_type": "rationale", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L16"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_54", "label": "\u53ef\u9009\u65e5\u671f\uff1a\u7a7a \u2192 None\uff1b\u5408\u6cd5 YYYY-MM-DD / date / datetime \u2192 date\u3002", "file_type": "rationale", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L54"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_100", "label": "\u5206\u914d\u540c\u79df\u6237\u3001\u540c\u62a5\u9500\u65e5\u671f\u4e0b\u7684\u6807\u9898\u5e8f\u53f7\uff08MAX+1\uff09\u3002 \u914d\u5408 uk_tenant_reimburse_date_title_seq \u552f\u4e00\u7ea6\u675f\uff0c\u5e76\u53d1\u51b2\u7a81\u65f6\u7531\u4e0a", "file_type": "rationale", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L100"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_123", "label": "\u9884\u89c8\u7528\u6807\u9898\u751f\u6210\uff08\u63d0\u4ea4\u65f6\u4ecd\u4f1a\u5728\u670d\u52a1\u7aef\u91cd\u65b0\u5206\u914d\u5e8f\u53f7\u4ee5\u4fdd\u8bc1\u5e76\u53d1\u5b89\u5168\uff09\u3002", "file_type": "rationale", "source_file": "backend/app/utils/bx_codegen.py", "source_location": "L123"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_bx_codegen_rationale_137", "label": "\u786e\u5b9a\u6700\u7ec8\u6807\u9898\u4e0e title_seq\u3002 - \u672a\u586b\u6807\u9898\uLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "label": "pool_rule.py", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L31"}, {"id": "crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_list_pool_rules", "label": "list_pool_rules()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L48"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_get_pool_rule", "label": "get_pool_rule()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L85"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_create_pool_rule", "label": "create_pool_rule()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L97"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_update_pool_rule", "label": "update_pool_rule()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L129"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_delete_pool_rules", "label": "delete_pool_rules()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L169"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_update_pool_rule_status", "label": "update_pool_rule_status()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L188"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_execute_pool_rules", "label": "execute_pool_rules()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L208"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_execute_single_rule", "label": "_execute_single_rule()", "file_type": "code", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_rationale_1", "label": "CRM \u516c\u6d77\u6c60\u89c4\u5219 CRUD + \u89c4\u5219\u6267\u884c\u903b\u8f91", "file_type": "rationale", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_pool_rule_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/pool_rule.py", "soLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "label": "test_pl_transport_stop_feedback.py", "file_type": "code", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_parse_and_dump_driver_stop_product_feedbacks", "label": "test_parse_and_dump_driver_stop_product_feedbacks()", "file_type": "code", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L11"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_quantity_before_attachments", "label": "test_save_site_stop_feedback_requires_quantity_before_attachments()", "file_type": "code", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L27"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_product_qty_before_attachments", "label": "test_save_site_stop_feedback_requires_product_qty_before_attachments()", "file_type": "code", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L42"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "target": "app_services_pl_transport_stop_feedback_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_parse_and_dump_driver_stop_product_feedbacks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_quantity_before_attachments", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_product_qty_before_attachments", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L42", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_parse_and_dump_driver_stop_product_feedbacks", "callee": "_dump_product_feedbacks", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L12", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_parse_and_dump_driver_stop_product_feedbacks", "callee": "_parse_product_feedbacks", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L21", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_quantity_before_attachments", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L28", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_quantity_before_attachments", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_transport_stop_feedback.py", "source_location": "L28"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_transport_stop_feedback_test_save_site_stop_feedback_requires_quantity_before_attachments", "callee": "save_site_stop_feedback", "is_member_call": false, "source_file": "/Users/wuzilong/work/00coLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_py", "label": "opportunity_follow.py", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L17"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L26"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L42"}, {"id": "crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_recalc_opportunity_follow_stats", "label": "_recalc_opportunity_follow_stats()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L71"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_ensure_parent_opportunity", "label": "_ensure_parent_opportunity()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L111"}, {"id": "crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_list_opportunity_follows", "label": "list_opportunity_follows()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L129"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_list_follows_by_opportunity", "label": "list_follows_by_opportunity()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L159"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_get_opportunity_follow", "label": "get_opportunity_follow()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_create_opportunity_follow", "label": "create_opportunity_follow()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L197"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_update_opportunity_follow", "label": "update_opportunity_follow()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L243"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_soft_delete_opportunity_follow", "label": "soft_delete_opportunity_follow()", "file_type": "code", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L287"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/opportunity_follow.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_opportunity_follow_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/crm/opportunity_follow.py", "sourLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_py", "label": "plan.py", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planproductbase", "label": "PlanProductBase", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L16"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planproductcreate", "label": "PlanProductCreate", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planproductupdate", "label": "PlanProductUpdate", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L59"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planarchivebrandqtyitem", "label": "PlanArchiveBrandQtyItem", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L81"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planproductread", "label": "PlanProductRead", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L89"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planstopproductbody", "label": "PlanStopProductBody", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L106"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L124"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planloadbody", "label": "PlanLoadBody", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L143"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plandeliverybody", "label": "PlanDeliveryBody", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L162"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planloadread", "label": "PlanLoadRead", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L182"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plandeliveryread", "label": "PlanDeliveryRead", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L193"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planbase", "label": "PlanBase", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L209"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L260"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plancreate", "label": "PlanCreate", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L267"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plantransportcreateblock", "label": "PlanTransportCreateBlock", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L284"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planupdate", "label": "PlanUpdate", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L298"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_hazardcertreadybody", "label": "HazardCertReadyBody", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L350"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_erpenteredbody", "label": "ErpEnteredBody", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L355"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_plandocumentattachmentitem", "label": "PlanDocumentAttachmentItem", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L360"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planread", "label": "PlanRead", "file_type": "code", "source_file": "backend/app/schemas/pl/plan.py", "source_location": "L366"}, {"id": "planresourcesnapshotmixin", "label": "PlanResourceSnapshotMixin", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_plan_planwithproducts", "label": "PlanWithProducts", "file_type": "code", "source_file": "bacLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "label": "dict_ensure.py", "file_type": "code", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "label": "DictEnsureError", "file_type": "code", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L20"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "label": "ensure_dict_data()", "file_type": "code", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L24"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/dict_ensure.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "label": "ensure_remove_dict_data()", "file_type": "code", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L96"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_rationale_1", "label": "\u4e1a\u52a1\u9875\u5b57\u5178 ensure\uff1a\u767d\u540d\u5355\u5185\u6309 label \u590d\u7528\u6216\u63d2\u5165 sys_dict_data\u3002", "file_type": "rationale", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_dictensureerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_remove_dict_data", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/dict_ensure.py", "source_location": "L96", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_dict_ensure_ensure_dict_daLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_py", "label": "customer_stop_pref.py", "file_type": "code", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_customerstopprefread", "label": "CustomerStopPrefRead", "file_type": "code", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L8"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_customerstopprefread", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_customerstopprefread", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/customer_stop_pref.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_customer_stop_pref_customerstopprefread"]}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "label": "bx_models.py", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxexpenseitem", "label": "BxExpenseItem", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L10"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxworkflowdef", "label": "BxWorkflowDef", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxworkflownode", "label": "BxWorkflowNode", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L62"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxadvanceapply", "label": "BxAdvanceApply", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L95"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxadvanceapproval", "label": "BxAdvanceApproval", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L128"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxreimburseapply", "label": "BxReimburseApply", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxreimbursedetail", "label": "BxReimburseDetail", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L189"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxreimburseapproval", "label": "BxReimburseApproval", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L211"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxreimburseoffset", "label": "BxReimburseOffset", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L234"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxattachment", "label": "BxAttachment", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L252"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxinvoice", "label": "BxInvoice", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxinvoiceledger", "label": "BxInvoiceLedger", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L297"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxreimburseinvoice", "label": "BxReimburseInvoice", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L322"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxinvoicewalletsummary", "label": "BxInvoiceWalletSummary", "file_type": "code", "source_file": "backend/app/models/bx_models.py", "source_location": "L340"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_rationale_1", "label": "\u62a5\u9500\uff08bx\uff09\u6a21\u5757\u6570\u636e\u6a21\u578b \u2014 \u5bf9\u9f50 docs/sql/20260606_bx_tables.sql", "file_type": "rationale", "source_file": "backend/app/models/bx_models.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/bx_models.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/bx_models.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/bx_models.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/bx_models.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_bx_models_bxLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_md", "label": "2026-08-30-pl-plan-save-sync-dibang-date-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u8fd0\u8f93\u8ba1\u5212\u4fdd\u5b58\u540c\u6b65\u5730\u78c5\u65e5\u671f_\u5df2\u5b89\u6392\u7981\u4ec5\u4fdd\u5b58", "label": "\u8fd0\u8f93\u8ba1\u5212\u4fdd\u5b58\u540c\u6b65\u5730\u78c5\u65e5\u671f + \u5df2\u5b89\u6392\u7981\u4ec5\u4fdd\u5b58", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_1_\u80cc\u666f", "label": "1. \u80cc\u666f", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_2_\u51b3\u7b56", "label": "2. \u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L11"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u65b9\u6848_a_\u524d\u7aef\u6d41\u7a0b", "label": "\u65b9\u6848 A\uff08\u524d\u7aef\u6d41\u7a0b\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L13"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u65b9\u6848_b_\u540e\u7aef\u515c\u5e95", "label": "\u65b9\u6848 B\uff08\u540e\u7aef\u515c\u5e95\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L20"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_3_\u975e\u76ee\u6807", "label": "3. \u975e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L31"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_4_\u5b9e\u73b0\u8981\u70b9", "label": "4. \u5b9e\u73b0\u8981\u70b9", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L36"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u8fd0\u8f93\u8ba1\u5212\u4fdd\u5b58\u540c\u6b65\u5730\u78c5\u65e5\u671f_\u5df2\u5b89\u6392\u7981\u4ec5\u4fdd\u5b58", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u8fd0\u8f93\u8ba1\u5212\u4fdd\u5b58\u540c\u6b65\u5730\u78c5\u65e5\u671f_\u5df2\u5b89\u6392\u7981\u4ec5\u4fdd\u5b58", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_1_\u80cc\u666f", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u8fd0\u8f93\u8ba1\u5212\u4fdd\u5b58\u540c\u6b65\u5730\u78c5\u65e5\u671f_\u5df2\u5b89\u6392\u7981\u4ec5\u4fdd\u5b58", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_2_\u51b3\u7b56", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_2_\u51b3\u7b56", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_save_sync_dibang_date_design_\u65b9\u6848_a_\u524d\u7aef\u6d41\u7a0b", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-save-sync-dibang-date-design.md", "source_location": "L13", "weight": 1.Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_md", "label": "2026-08-22-pl-plan-blank-slip-print.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u8fd0\u8f93\u8ba1\u5212\u7a7a\u767d\u5355\u636e\u6253\u5370_implementation_plan", "label": "\u8fd0\u8f93\u8ba1\u5212\u7a7a\u767d\u5355\u636e\u6253\u5370 \u2014 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_1_\u5165\u5e93\u5355_\u9001_\u63d0_\u8d27\u5355\u7a7a\u767d_html_\u7eaf\u51fd\u6570", "label": "Task 1: \u5165\u5e93\u5355 / \u9001(\u63d0)\u8d27\u5355\u7a7a\u767d HTML \u7eaf\u51fd\u6570", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_2_\u5206\u88c5\u5355\u7a7a\u767d_html_\u7eaf\u51fd\u6570", "label": "Task 2: \u5206\u88c5\u5355\u7a7a\u767d HTML \u7eaf\u51fd\u6570", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L209"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_3_\u4e09\u4e2a\u6253\u5370\u5f39\u7a97_openblank", "label": "Task 3: \u4e09\u4e2a\u6253\u5370\u5f39\u7a97 `openBlank()`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L310"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_4_\u5217\u8868\u5de5\u5177\u680f\u5165\u53e3", "label": "Task 4: \u5217\u8868\u5de5\u5177\u680f\u5165\u53e3", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L403"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L483"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u8fd0\u8f93\u8ba1\u5212\u7a7a\u767d\u5355\u636e\u6253\u5370_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u8fd0\u8f93\u8ba1\u5212\u7a7a\u767d\u5355\u636e\u6253\u5370_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u6587\u4ef6\u7ed3\u6784", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u6587\u4ef6\u7ed3\u6784", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_1_\u5165\u5e93\u5355_\u9001_\u63d0_\u8d27\u5355\u7a7a\u767d_html_\u7eaf\u51fd\u6570", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u6587\u4ef6\u7ed3\u6784", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_task_2_\u5206\u88c5\u5355\u7a7a\u767d_html_\u7eaf\u51fd\u6570", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-22-pl-plan-blank-slip-print.md", "source_location": "L209", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_22_pl_plan_blank_slip_print_\u6587\u4ef6\u7ed3\u6784", "target": "users_wuziloLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "label": "pl_plan_print_service.py", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_customer_key", "label": "_customer_key()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_resolve_customer_id", "label": "_resolve_customer_id()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L28"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_list_delivery_print_customers", "label": "list_delivery_print_customers()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L35"}, {"id": "plandeliveryread", "label": "PlanDeliveryRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_print_service.py"}, {"id": "deliveryprintcustomeroption", "label": "DeliveryPrintCustomerOption", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_print_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_delivery_matches_customer", "label": "_delivery_matches_customer()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L64"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_merge_stop_products", "label": "_merge_stop_products()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L78"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_print_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_build_delivery_slip_print", "label": "build_delivery_slip_print()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L100"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_print_service.py"}, {"id": "deliveryslipprintread", "label": "DeliverySlipPrintRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_print_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_get_delivery_slip_print_context", "label": "get_delivery_slip_print_context()", "file_type": "code", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L139"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "app_schemas_pl_plan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "app_services_pl_plan_stop_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_print_service.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_print_service_customLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "label": "export_common.py", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxexportbodybase", "label": "BxExportBodyBase", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L35"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxapplylistexportbody", "label": "BxApplyListExportBody", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_status_label", "label": "status_label()", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L53"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/export_common.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_issue_status_label", "label": "issue_status_label()", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L64"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_dump_export_row", "label": "dump_export_row()", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L70"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_respond_xlsx", "label": "respond_xlsx()", "file_type": "code", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L95"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/export_common.py"}, {"id": "exportcolumn", "label": "ExportColumn", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/export_common.py"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxexportbodybase", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxexportbodybase", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxapplylistexportbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "source_location": "L42", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxapplylistexportbody", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_export_common_bxexportbodybase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/api/bx/export_common.py", "sourcLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "label": "tenant.py", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L17"}, {"id": "systenant", "label": "SysTenant", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_list_tenants", "label": "list_tenants()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L32"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/tenant.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_get_tenant", "label": "get_tenant()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L69"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_tenant_no_exists", "label": "tenant_no_exists()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L77"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_create_tenant", "label": "create_tenant()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_update_tenant", "label": "update_tenant()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L121"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_soft_delete_tenant", "label": "soft_delete_tenant()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L163"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/tenant.py", "source_location": "L176"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "app_core_config", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "app_core_delete_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/tenant.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_tenant_row_to_dict", "relaLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_py", "label": "inventory.py", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_base_query", "label": "_base_query()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L55"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_generate_batch_no", "label": "_generate_batch_no()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L62"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_resolve_tenant_no", "label": "_resolve_tenant_no()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L82"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_get_inventory_by_id", "label": "_get_inventory_by_id()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L100"}, {"id": "dbinboundoutbound", "label": "DbInboundOutbound", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_get_inventory", "label": "_get_inventory()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L114"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_apply_inventory_product_update", "label": "_apply_inventory_product_update()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L131"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_apply_inventory_update", "label": "_apply_inventory_update()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L147"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_maybe_promote_third_party_status", "label": "_maybe_promote_third_party_status()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L165"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_list_inventory", "label": "list_inventory()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L176"}, {"id": "inboundoutboundread", "label": "InboundOutboundRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_inventoryexportbody", "label": "InventoryExportBody", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L305"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_export_inventory", "label": "export_inventory()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L323"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_create_inventory", "label": "create_inventory()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L371"}, {"id": "inboundoutboundcreate", "label": "InboundOutboundCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_create_link_for_plan", "label": "create_link_for_plan()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L419"}, {"id": "createlinkforplanpayload", "label": "CreateLinkForPlanPayload", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/inventory.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_inventory_get_inventory_site_url", "label": "get_inventory_site_url()", "file_type": "code", "source_file": "backend/app/api/db/inventory.py", "source_location": "L470"}, {"id": "inventorysiteurlread", "label": "InventorySiteUrlRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/aLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_py", "label": "sample_code.py", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_resolve_issued_user_display_name", "label": "_resolve_issued_user_display_name()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L15"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_parse_issued_time", "label": "_parse_issued_time()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L32"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L44"}, {"id": "bizsamplecode", "label": "BizSampleCode", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/sample_code.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_sample_code_exists", "label": "sample_code_exists()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L61"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_list_sample_codes", "label": "list_sample_codes()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L73"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_get_sample_code", "label": "get_sample_code()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L104"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_create_sample_code", "label": "create_sample_code()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L111"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_update_sample_code", "label": "update_sample_code()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L167"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_soft_delete_sample_code", "label": "soft_delete_sample_code()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L219"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_batch_generate_sample_codes", "label": "batch_generate_sample_codes()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L229"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_batch_issue_sample_codes", "label": "batch_issue_sample_codes()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L312"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_batch_revoke_sample_codes", "label": "batch_revoke_sample_codes()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L357"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/sample_code.py", "source_location": "L396"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_rationale_1", "label": "\u6837\u672c\u7f16\u7801\u6c60 CRUD\uff08biz_sample_code\uff09", "file_type": "rationale", "source_file": "backend/app/crud/sample_code.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_rationale_240", "label": "\u6279\u91cf\u751f\u6210\u6837\u672c\u7f16\u7801: \u7c7b\u578b\u524d\u7f00 + \u4e2d\u95f4\u6bb5 + \u8865\u96f6\u5e8f\u53f7", "file_type": "rationale", "source_file": "backend/app/crud/sample_code.py", "source_location": "L240"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/sample_code.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_sample_code_py", "target": "datetime", "relation": "imports_from", "coLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_py", "label": "workflow.py", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L30"}, {"id": "wfprocessdef", "label": "WfProcessDef", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_list_process_defs", "label": "list_process_defs()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_get_process_def", "label": "get_process_def()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L101"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_process_code_exists", "label": "process_code_exists()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L109"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_create_process_def", "label": "create_process_def()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L120"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_update_process_def", "label": "update_process_def()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L157"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_soft_delete_process_def", "label": "soft_delete_process_def()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L196"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_publish_version", "label": "publish_version()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L212"}, {"id": "wfprocessversion", "label": "WfProcessVersion", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_get_latest_version", "label": "get_latest_version()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L304"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_version_to_dict", "label": "_version_to_dict()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L318"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_list_versions", "label": "list_versions()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L329"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_get_nodes_by_version", "label": "get_nodes_by_version()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L344"}, {"id": "wfnode", "label": "WfNode", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_get_transitions_by_version", "label": "get_transitions_by_version()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L353"}, {"id": "wftransition", "label": "WfTransition", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_create_instance", "label": "create_instance()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L367"}, {"id": "wfprocessinstance", "label": "WfProcessInstance", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/workflow.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_get_instance", "label": "get_instance()", "file_type": "code", "source_file": "backend/app/crud/workflow.py", "source_location": "L405"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_workflow_update_instance_status", "label": "update_instance_statusLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_md", "label": "2026-08-30-pl-plan-product-fields-arrange-required.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u5b57\u6bb5\u5b89\u6392\u524d\u5fc5\u586b_\u5b9e\u73b0\u8ba1\u5212", "label": "\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u5b57\u6bb5\u5b89\u6392\u524d\u5fc5\u586b \u2014 \u5b9e\u73b0\u8ba1\u5212", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_task_1_\u7eaf\u51fd\u6570\u6821\u9a8c_\u5931\u8d25\u6d4b\u8bd5", "label": "Task 1: \u7eaf\u51fd\u6570\u6821\u9a8c + \u5931\u8d25\u6d4b\u8bd5", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L26"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_task_2_\u5f39\u7a97\u5b89\u6392\u5206\u652f\u63a5\u5165\u6821\u9a8c", "label": "Task 2: \u5f39\u7a97\u5b89\u6392\u5206\u652f\u63a5\u5165\u6821\u9a8c", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L194"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_task_3_\u4ea7\u54c1\u8868\u5fc5\u586b\u661f\u53f7_ui", "label": "Task 3: \u4ea7\u54c1\u8868\u5fc5\u586b\u661f\u53f7 UI", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L254"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_task_4_\u624b\u5de5\u9a8c\u6536_graphify", "label": "Task 4: \u624b\u5de5\u9a8c\u6536 + graphify", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L313"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L344"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u5b57\u6bb5\u5b89\u6392\u524d\u5fc5\u586b_\u5b9e\u73b0\u8ba1\u5212", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u5b57\u6bb5\u5b89\u6392\u524d\u5fc5\u586b_\u5b9e\u73b0\u8ba1\u5212", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u6587\u4ef6\u7ed3\u6784", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u6587\u4ef6\u7ed3\u6784", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_task_1_\u7eaf\u51fd\u6570\u6821\u9a8c_\u5931\u8d25\u6d4b\u8bd5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-product-fields-arrange-required.md", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_product_fields_arrange_required_\u6587\u4ef6\u7ed3\u6784", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_produLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_md", "label": "proposal.md", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_why", "label": "Why", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_what_changes", "label": "What Changes", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L5"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_capabilities", "label": "Capabilities", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L12"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_new_capabilities", "label": "New Capabilities", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L14"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_modified_capabilities", "label": "Modified Capabilities", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_impact", "label": "Impact", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L22"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_md", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_why", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_md", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_what_changes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_md", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_capabilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_capabilities", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_new_capabilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_capabilities", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_modified_capabilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_md", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_proposal_impact", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/proposal.md", "source_location": "L22", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_py", "label": "test_pl_plan_single_contract_rules.py", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_allows_zero_or_one", "label": "test_assert_at_most_one_contract_allows_zero_or_one()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_at_most_one_contract_rejects_two", "label": "test_assert_at_most_one_contract_rejects_two()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery", "label": "_FakeQuery", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L36"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_filter", "label": ".filter()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakequery_all", "label": ".all()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L43"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb", "label": "_FakeDb", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L48"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_fakedb_query", "label": ".query()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L51"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_load_with_products", "label": "_load_with_products()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_passes_when_all_match", "label": "test_assert_load_products_in_contract_passes_when_all_match()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L73"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_in_contract_rejects_outside", "label": "test_assert_load_products_in_contract_rejects_outside()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_when_no_contract", "label": "test_assert_load_products_skips_when_no_contract()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L88"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_load_products_skips_internal_customer", "label": "test_assert_load_products_skips_internal_customer()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L107"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_assert_plan_products_outside_contract_raises", "label": "test_assert_plan_products_outside_contract_raises()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L130"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_delivery_with_products", "label": "_delivery_with_products()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_single_contract_rules.py", "source_location": "L145"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_single_contract_rules_test_asserLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "label": "migrate_pl_plan_to_multi_stop.py", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_migrationstats", "label": "MigrationStats", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_plan_qty", "label": "_plan_qty()", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L65"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_to_multi_stop.py"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_to_multi_stop.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_migrate_plan", "label": "_migrate_plan()", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L71"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_to_multi_stop.py"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/migrate_pl_plan_to_multi_stop.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_run_migration", "label": "run_migration()", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L258"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_print_stats", "label": "print_stats()", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L283"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_main", "label": "main()", "file_type": "code", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L300"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_migrate_pl_plan_to_multi_stop_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/migrate_pl_plan_to_multi_stop.py", "sourceLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_md", "label": "2026-08-20-duty-shift-dict-time.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_\u503c\u73ed\u6392\u73ed_\u5b57\u5178\u7c7b\u578b_\u5de5\u4f5c\u5b89\u6392_\u65f6\u6bb5_implementation_plan", "label": "\u503c\u73ed\u6392\u73ed \u00b7 \u5b57\u5178\u7c7b\u578b / \u5de5\u4f5c\u5b89\u6392 / \u65f6\u6bb5 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_1_sql_\u8fc1\u79fb_\u5b57\u5178_alter_\u56de\u586b", "label": "Task 1: SQL \u8fc1\u79fb\uff08\u5b57\u5178 + ALTER + \u56de\u586b\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_2_\u6a21\u578b\u4e0e_schema", "label": "Task 2: \u6a21\u578b\u4e0e Schema", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L152"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_3_\u5b57\u5178_ensure_\u65f6\u6bb5\u683c\u5f0f\u5316\u4e0e\u5e8f\u5217\u5316_tdd", "label": "Task 3: \u5b57\u5178 ensure\u3001\u65f6\u6bb5\u683c\u5f0f\u5316\u4e0e\u5e8f\u5217\u5316\uff08TDD\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L249"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_4_\u5e8f\u5217\u5316_save_day_grab_\u6539\u9020", "label": "Task 4: \u5e8f\u5217\u5316\u3001save_day\u3001grab \u6539\u9020", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L472"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_5_\u524d\u7aef_api_\u7c7b\u578b", "label": "Task 5: \u524d\u7aef API \u7c7b\u578b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L698"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_6_\u7ba1\u7406\u7aef\u6392\u73ed\u9875", "label": "Task 6: \u7ba1\u7406\u7aef\u6392\u73ed\u9875", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L764"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_7_\u516c\u5f00\u79fb\u52a8\u7aef_h5_\u540c\u6b65", "label": "Task 7: \u516c\u5f00\u79fb\u52a8\u7aef H5 \u540c\u6b65", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L878"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_task_8_\u56de\u5f52\u4e0e\u6536\u5c3e", "label": "Task 8: \u56de\u5f52\u4e0e\u6536\u5c3e", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L916"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L948"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_\u6267\u884c\u8bf4\u660e", "label": "\u6267\u884c\u8bf4\u660e", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L963"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_duty_shift_dict_time_\u503c\u73ed\u6392\u73ed_\u5b57\u5178\u7c7b\u578b_\u5de5\u4f5c\u5b89\u6392_\u65f6\u6bb5_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-20-duty-shift-dict-time.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_md", "label": "2026-08-21-reimburse-apply-page-size-options.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_\u62a5\u9500\u7533\u8bf7\u5217\u8868\u6269\u5927\u6bcf\u9875\u6761\u6570_\u8bd5\u70b9_implementation_plan", "label": "\u62a5\u9500\u7533\u8bf7\u5217\u8868\u6269\u5927\u6bcf\u9875\u6761\u6570\uff08\u8bd5\u70b9\uff09Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_task_1_\u540e\u7aef_pagesize_\u4e0a\u9650_500_\u5355\u6d4b", "label": "Task 1: \u540e\u7aef `pageSize` \u4e0a\u9650 500 + \u5355\u6d4b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_task_2_\u524d\u7aef\u5206\u9875\u9009\u9879", "label": "Task 2: \u524d\u7aef\u5206\u9875\u9009\u9879", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L92"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_spec_coverage_check", "label": "Spec coverage check", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L107"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_\u62a5\u9500\u7533\u8bf7\u5217\u8868\u6269\u5927\u6bcf\u9875\u6761\u6570_\u8bd5\u70b9_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_\u62a5\u9500\u7533\u8bf7\u5217\u8868\u6269\u5927\u6bcf\u9875\u6761\u6570_\u8bd5\u70b9_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_task_1_\u540e\u7aef_pagesize_\u4e0a\u9650_500_\u5355\u6d4b", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_task_2_\u524d\u7aef\u5206\u9875\u9009\u9879", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L92", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_\u62a5\u9500\u7533\u8bf7\u5217\u8868\u6269\u5927\u6bcf\u9875\u6761\u6570_\u8bd5\u70b9_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_reimburse_apply_page_size_options_spec_coverage_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-21-reimburse-apply-page-size-options.md", "source_location": "L107", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "label": "config.py", "file_type": "code", "source_file": "backend/app/core/config.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_settings", "label": "Settings", "file_type": "code", "source_file": "backend/app/core/config.py", "source_location": "L7"}, {"id": "basesettings", "label": "BaseSettings", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_config", "label": "Config", "file_type": "code", "source_file": "backend/app/core/config.py", "source_location": "L186"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "pydantic_settings", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_settings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_settings", "target": "basesettings", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/core/config.py", "source_location": "L186", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_config", "users_wuzilong_work_00code_shanxia2_0_backend_app_core_config_settings"]}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_md", "label": "2026-08-30-pl-plan-delivery-contract-products-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_\u8fd0\u8f93\u8ba1\u5212_\u9001\u8d27\u6bb5\u4ea7\u54c1\u9650\u5408\u540c\u5185_\u9009\u62e9\u4ea7\u54c1", "label": "\u8fd0\u8f93\u8ba1\u5212\uff1a\u9001\u8d27\u6bb5\u4ea7\u54c1\u9650\u5408\u540c\u5185 + \u9009\u62e9\u4ea7\u54c1", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_1_\u80cc\u666f\u4e0e\u76ee\u6807", "label": "1. \u80cc\u666f\u4e0e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L8"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_2_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "2. \u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L20"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_3_\u975e\u76ee\u6807", "label": "3. \u975e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_4_\u524d\u7aef\u8bbe\u8ba1", "label": "4. \u524d\u7aef\u8bbe\u8ba1", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_4_1_\u9001\u8d27\u533a_ui_plplandeliverysection", "label": "4.1 \u9001\u8d27\u533a UI\uff08`PlPlanDeliverySection`\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_4_2_\u8868\u5355\u8054\u52a8_plplanformdialog", "label": "4.2 \u8868\u5355\u8054\u52a8\uff08`PlPlanFormDialog`\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L49"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_4_3_\u5de5\u5177\u51fd\u6570", "label": "4.3 \u5de5\u5177\u51fd\u6570", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_5_\u540e\u7aef\u8bbe\u8ba1", "label": "5. \u540e\u7aef\u8bbe\u8ba1", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L62"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_6_\u6570\u636e\u6d41", "label": "6. \u6570\u636e\u6d41", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_7_\u8fb9\u754c\u60c5\u51b5", "label": "7. \u8fb9\u754c\u60c5\u51b5", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L86"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_8_\u6d4b\u8bd5\u8ba1\u5212", "label": "8. \u6d4b\u8bd5\u8ba1\u5212", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_location": "L96"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_delivery_contract_products_design_\u540e\u7aef", "label": "\u540e\u7aef", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-delivery-contract-products-design.md", "source_locatiLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_md", "label": "2026-08-16-quote-list-column-stats.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_\u62a5\u4ef7\u5355\u5217\u8868\u53ef\u914d\u7f6e\u5217\u7edf\u8ba1\u884c_implementation_plan", "label": "\u62a5\u4ef7\u5355\u5217\u8868\u53ef\u914d\u7f6e\u5217\u7edf\u8ba1\u884c Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_1_\u7eaf\u51fd\u6570\u6a21\u5757_\u5931\u8d25\u5355\u6d4b\u9aa8\u67b6", "label": "Task 1: \u7eaf\u51fd\u6570\u6a21\u5757 + \u5931\u8d25\u5355\u6d4b\u9aa8\u67b6", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_2_quotelistpage_\u63a5\u5165\u7edf\u8ba1\u884c_ui", "label": "Task 2: QuoteListPage \u63a5\u5165\u7edf\u8ba1\u884c UI", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L278"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_3_\u5217\u5bbd_\u6a2a\u6eda\u5bf9\u9f50\u52a0\u56fa_\u82e5_step_4_\u53d1\u73b0\u9519\u4f4d", "label": "Task 3: \u5217\u5bbd/\u6a2a\u6eda\u5bf9\u9f50\u52a0\u56fa\uff08\u82e5 Step 4 \u53d1\u73b0\u9519\u4f4d\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L478"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_spec_coverage_check", "label": "Spec coverage check", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L528"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_\u6267\u884c\u65b9\u5f0f", "label": "\u6267\u884c\u65b9\u5f0f", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L542"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_\u62a5\u4ef7\u5355\u5217\u8868\u53ef\u914d\u7f6e\u5217\u7edf\u8ba1\u884c_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_\u62a5\u4ef7\u5355\u5217\u8868\u53ef\u914d\u7f6e\u5217\u7edf\u8ba1\u884c_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_1_\u7eaf\u51fd\u6570\u6a21\u5757_\u5931\u8d25\u5355\u6d4b\u9aa8\u67b6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_2_quotelistpage_\u63a5\u5165\u7edf\u8ba1\u884c_ui", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-16-quote-list-column-stats.md", "source_location": "L278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_quote_list_column_stats_task_3_\u5217\u5bbd_\u6a2a\u6eda\u5bf9\u9f50Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_md", "label": "2026-08-21-dict-select-ensure.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_\u5b57\u5178\u4e0b\u62c9\u624b\u8f93\u5373\u5165\u5e93_dictselect_ensure_implementation_plan", "label": "\u5b57\u5178\u4e0b\u62c9\u624b\u8f93\u5373\u5165\u5e93\uff08DictSelect + ensure\uff09Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_1_\u540e\u7aef_ensure_\u670d\u52a1_\u5355\u6d4b", "label": "Task 1: \u540e\u7aef ensure \u670d\u52a1 + \u5355\u6d4b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L35"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_2_\u540e\u7aef_ensure_remove_\u5355\u6d4b", "label": "Task 2: \u540e\u7aef ensure-remove + \u5355\u6d4b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L253"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_3_\u6ce8\u518c_admin_api_\u8def\u7531", "label": "Task 3: \u6ce8\u518c admin API \u8def\u7531", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L391"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_4_\u524d\u7aef_api_\u767d\u540d\u5355\u5e38\u91cf_dictstore", "label": "Task 4: \u524d\u7aef API + \u767d\u540d\u5355\u5e38\u91cf + dictStore", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L492"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_5_\u5b9e\u73b0_dictselect_\u7ec4\u4ef6", "label": "Task 5: \u5b9e\u73b0 `DictSelect` \u7ec4\u4ef6", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L669"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_6_\u6539\u9020\u62a5\u4ef7\u5355_quoteformpanel", "label": "Task 6: \u6539\u9020\u62a5\u4ef7\u5355 `QuoteFormPanel`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L855"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_7_\u6539\u9020\u5408\u540c\u8868\u5355_\u5f39\u7a97_\u72ec\u7acb\u9875", "label": "Task 7: \u6539\u9020\u5408\u540c\u8868\u5355\uff08\u5f39\u7a97 + \u72ec\u7acb\u9875\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L925"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_8_\u6539\u9020\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u8868", "label": "Task 8: \u6539\u9020\u8fd0\u8f93\u8ba1\u5212\u4ea7\u54c1\u8868", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L954"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_9_\u6539\u9020\u5ba2\u6237_\u7ebf\u7d22_\u6240\u5728\u56ed\u533a", "label": "Task 9: \u6539\u9020\u5ba2\u6237 / \u7ebf\u7d22\u300c\u6240\u5728\u56ed\u533a\u300d", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L991"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_task_10_\u56de\u5f52\u9a8c\u6536_\u56fe\u8c31\u66f4\u65b0", "label": "Task 10: \u56de\u5f52\u9a8c\u6536 + \u56fe\u8c31\u66f4\u65b0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L1026"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensure_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-dict-select-ensure.md", "source_location": "L1074"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_dict_select_ensuLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_py", "label": "clue.py", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_ensure_clue_in_scope", "label": "_ensure_clue_in_scope()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L18"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py"}, {"id": "crmclue", "label": "CrmClue", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L22"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L32"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L50"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/clue.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L66"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L76"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L103"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_list_clues", "label": "list_clues()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L148"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_get_clue", "label": "get_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L248"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_create_clue", "label": "create_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L259"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_update_clue", "label": "update_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L324"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_soft_delete_clue", "label": "soft_delete_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L390"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_assign_clues", "label": "assign_clues()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L413"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_convert_clue", "label": "convert_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L457"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_validate_convertible", "label": "_validate_convertible()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L568"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_check_convert", "label": "check_convert()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L581"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_invalid_clue", "label": "invalid_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "source_location": "L591"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_clue_check_duplicate_clue", "label": "check_duplicate_clue()", "file_type": "code", "source_file": "backend/app/crud/crm/clue.py", "sourcLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_py", "label": "plan.py", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_list_product_name", "label": "_resolve_list_product_name()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L154"}, {"id": "plplanproduct", "label": "PlPlanProduct", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_resolve_create_date", "label": "_resolve_create_date()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L170"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L174"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_format_subpack_slip_no", "label": "_format_subpack_slip_no()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L206"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_normalize_subpack_slip_no", "label": "_normalize_subpack_slip_no()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L210"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_subpack_slip_no_seq", "label": "_subpack_slip_no_seq()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_ensure_subpack_slip_no", "label": "_ensure_subpack_slip_no()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L243"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_determine_plan_type", "label": "_determine_plan_type()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L275"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_get_plan_type_label", "label": "_get_plan_type_label()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L280"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_generate_notify_message", "label": "_generate_notify_message()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L289"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_product_name_exists", "label": "_plan_product_name_exists()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L309"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_plan_plate_match", "label": "_plan_plate_match()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L323"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_parse_status_csv", "label": "_parse_status_csv()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L332"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_follow_status_filter", "label": "_apply_follow_status_filter()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L338"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_apply_exclude_follow_status_filter", "label": "_apply_exclude_follow_status_filter()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L347"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_plan_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "backend/app/api/pl/plan.py", "source_location": "L357"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "planlistresponse", "label": "PlanListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/plan.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_py", "label": "reimburse.py", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_tenant", "label": "_tenant()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L49"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "bxusercontext", "label": "BxUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_list_filters", "label": "_reimburse_list_filters()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L65"}, {"id": "bxapplylistexportbody", "label": "BxApplyListExportBody", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_export_reimburse_rows", "label": "_export_reimburse_rows()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L96"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_build_details_data", "label": "_build_details_data()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L101"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_get_generated_title", "label": "get_generated_title()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L138"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_download_reimburse_import_template", "label": "download_reimburse_import_template()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L155"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_import_reimburses", "label": "import_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L187"}, {"id": "uploadfile", "label": "UploadFile", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_list_reimburses", "label": "list_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L203"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburses", "label": "my_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L249"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_my_reimburse_stats", "label": "my_reimburse_stats()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L294"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_reimburse_status_counts", "label": "reimburse_status_counts()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L304"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval", "label": "pending_approval()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L313"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_pending_approval_stats", "label": "pending_approval_stats()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L345"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_approved_by_me", "label": "approved_by_me()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L355"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_export_reimburses", "label": "export_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L388"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_export_my_reimburses", "label": "export_my_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L413"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_reimburse_export_pending_approval_reimburses", "label": "export_pending_approval_reimburses()", "file_type": "code", "source_file": "backend/app/api/bx/reimburse.py", "source_location": "L444"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backendLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_md", "label": "2026-08-21-dict-select-ensure-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u5b57\u5178\u4e0b\u62c9\u624b\u8f93\u5373\u5165\u5e93_dictselect_ensure_\u8bbe\u8ba1\u6587\u6863", "label": "\u5b57\u5178\u4e0b\u62c9\u624b\u8f93\u5373\u5165\u5e93\uff08DictSelect + ensure\uff09\u2014 \u8bbe\u8ba1\u6587\u6863", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u80cc\u666f", "label": "\u80cc\u666f", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L9"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "\u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u767d\u540d\u5355_\u9996\u6279", "label": "\u767d\u540d\u5355\uff08\u9996\u6279\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L32"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u65b9\u6848\u9009\u62e9", "label": "\u65b9\u6848\u9009\u62e9", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L43"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u67b6\u6784", "label": "\u67b6\u6784", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u540e\u7aef\u63a5\u53e3", "label": "\u540e\u7aef\u63a5\u53e3", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L72"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_post_web_admin_dict_data_ensure", "label": "`POST /web/admin/dict-data/ensure`", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L74"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_post_web_admin_dict_data_ensure_remove_\u6216\u7b49\u4ef7_delete", "label": "`POST /web/admin/dict-data/ensure-remove`\uff08\u6216\u7b49\u4ef7 DELETE\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L94"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u524d\u7aef\u8bbe\u8ba1", "label": "\u524d\u7aef\u8bbe\u8ba1", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L109"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_dictstore_\u589e\u8865", "label": "`dictStore` \u589e\u8865", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L111"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u7ec4\u4ef6_web_admin_src_components_dictselect_index_vue", "label": "\u7ec4\u4ef6 `web-admin/src/components/DictSelect/index.vue`", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L120"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u6539\u9020\u6e05\u5355", "label": "\u6539\u9020\u6e05\u5355", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L140"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u4e0d\u5728\u8303\u56f4", "label": "\u4e0d\u5728\u8303\u56f4", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-dict-select-ensure-design.md", "source_location": "L153"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_dict_select_ensure_design_\u9519\u8Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_py", "label": "test_pl_customer_stop_pref_service.py", "file_type": "code", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_skips_empty_customer", "label": "test_build_items_skips_empty_customer()", "file_type": "code", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L5"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_load_and_delivery_independent", "label": "test_build_items_load_and_delivery_independent()", "file_type": "code", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_same_delivery_customer_last_wins", "label": "test_build_items_same_delivery_customer_last_wins()", "file_type": "code", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L42"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_py", "target": "app_services_pl_customer_stop_pref_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_skips_empty_customer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_load_and_delivery_independent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_same_delivery_customer_last_wins", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L42", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_skips_empty_customer", "callee": "build_stop_pref_upsert_items", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L6", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_load_and_delivery_independent", "callee": "build_stop_pref_upsert_items", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L16", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_same_delivery_customer_last_wins", "callee": "build_stop_pref_upsert_items", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_customer_stop_pref_service.py", "source_location": "L43", "receiver": null}], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_load_and_delivery_independent", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_same_delivery_customer_last_wins", "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_customer_stop_pref_service_test_build_items_skips_empty_customer"]}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "label": "pl_menu_badge_service.py", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_pending_applies", "label": "_count_pending_applies()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L46"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_menu_badge_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_document_reminder_expired_pending", "label": "count_document_reminder_expired_pending()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_freight_approval_pending", "label": "count_freight_approval_pending()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L69"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_plan_cert_pending", "label": "count_plan_cert_pending()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L88"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_plan_archive_pending", "label": "count_plan_archive_pending()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_plan_contract_gaps", "label": "count_plan_contract_gaps()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L135"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_count_freight_disburse_pending", "label": "count_freight_disburse_pending()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L148"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_build_menu_badge_counts", "label": "build_menu_badge_counts()", "file_type": "code", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L158"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_rationale_123", "label": "\u5f85\u5f52\u6863\u89d2\u6807\uff1a\u4e0e\u5f52\u6863\u5217\u8868\u4e00\u81f4\uff0c\u4ec5\u7edf\u8ba1\u5df2\u5b89\u6392\u8fd0\u8f93\u4e14\u672a\u5f52\u6863\u7684\u8ba1\u5212\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L123"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "collections", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "app_services_pl_cert_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_menu_badge_service_py", "target": "app_services_pl_data_scope", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_menu_badge_service.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_apLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_md", "label": "2026-08-30-pl-plan-form-available-qty-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "label": "\u8fd0\u8f93\u8ba1\u5212\u8868\u5355 \u00b7 \u53ef\u5b89\u6392\u6570\u91cf", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u76ee\u6807", "label": "\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "\u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L11"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_api", "label": "API", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_ui", "label": "UI", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L45"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u975e\u76ee\u6807", "label": "\u975e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L52"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u76ee\u6807", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u5df2\u786e\u8ba4\u51b3\u7b56", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_ui", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-30-pl-plan-form-available-qty-design.md", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_30_pl_plan_form_available_qty_design_\u8fd0\u8f93\u8ba1\u5212\u8868\u5355_\u53ef\u5b89\u6392\u6570\u91cf", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_0Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "label": "test_pl_arrange_auto_start_execute.py", "file_type": "code", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "label": "test_auto_start_execute_promotes_approved_only()", "file_type": "code", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L8"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "types", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "app_services_pl_contract_plan_qty", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L8", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L9", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L10", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "MagicMock", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L13", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "query", "is_member_call": false, "indirect": true, "context": "assignment", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L26"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "SimpleNamespace", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L27", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "patch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L43", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "patch", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L48", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_test_auto_start_execute_promotes_approved_only", "callee": "fake_query", "is_member_call": false, "indirect": true, "context": "assignment", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_arrange_auto_start_execute.py", "source_location": "L52"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_arrange_auto_start_execute_tesLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_md", "label": "2026-08-21-web-admin-list-export-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_web_admin_\u5217\u8868\u7edf\u4e00\u540e\u7aef\u5bfc\u51fa", "label": "web-admin \u5217\u8868\u7edf\u4e00\u540e\u7aef\u5bfc\u51fa", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u80cc\u666f", "label": "\u80cc\u666f", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u51b3\u7b56\u6458\u8981", "label": "\u51b3\u7b56\u6458\u8981", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L11"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u67b6\u6784", "label": "\u67b6\u6784", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u540e\u7aef", "label": "\u540e\u7aef", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L26"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u524d\u7aef", "label": "\u524d\u7aef", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u6570\u636e\u6d41", "label": "\u6570\u636e\u6d41", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u63a5\u53e3\u7ea6\u5b9a", "label": "\u63a5\u53e3\u7ea6\u5b9a", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L60"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u8bf7\u6c42", "label": "\u8bf7\u6c42", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L62"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u54cd\u5e94", "label": "\u54cd\u5e94", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L72"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u5217\u5b9a\u4e49", "label": "\u5217\u5b9a\u4e49", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L85"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u5df2\u6709\u5bfc\u51fa", "label": "\u5df2\u6709\u5bfc\u51fa", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L91"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u524d\u7aef\u7ec4\u4ef6\u8349\u6848", "label": "\u524d\u7aef\u7ec4\u4ef6\u8349\u6848", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L96"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u843d\u5730\u8282\u594f", "label": "\u843d\u5730\u8282\u594f", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L112"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u6743\u9650\u4e0e\u5b89\u5168", "label": "\u6743\u9650\u4e0e\u5b89\u5168", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-21-web-admin-list-export-design.md", "source_location": "L119"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_21_web_admin_list_export_design_\u9aLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_py", "label": "pl_plan_contract_gap.py", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_stop_contract_gap", "label": "stop_contract_gap()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L47"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_side_is_exempt", "label": "side_is_exempt()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_compute_contract_gap_sides", "label": "compute_contract_gap_sides()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_compute_plan_gap_sides_from_stops", "label": "compute_plan_gap_sides_from_stops()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L71"}, {"id": "planloadread", "label": "PlanLoadRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plandeliveryread", "label": "PlanDeliveryRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_stop_contract_exists", "label": "_stop_contract_exists()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L105"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_load_stop_gap_expr", "label": "_load_stop_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_delivery_stop_gap_expr", "label": "_delivery_stop_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L145"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_legacy_supplier_gap_expr", "label": "_legacy_supplier_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L168"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_legacy_demander_gap_expr", "label": "_legacy_demander_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L194"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_plan_has_contract_gap_exists", "label": "plan_has_contract_gap_exists()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L220"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_supplier_gap_expr", "label": "_supplier_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L230"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_demander_gap_expr", "label": "_demander_gap_expr()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L234"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_contract_gap_build_plan_contract_gap_read", "label": "build_plan_contract_gap_read()", "file_type": "code", "source_file": "backend/app/services/pl_plan_contract_gap.py", "source_location": "L238"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plancontractlink", "label": "PlanContractLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "planproductread", "label": "PlanProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "plancontractgapread", "label": "PlanContractGapRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_contract_gap.py"}, {"id": "users_wuzilong_work_Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "label": "test_pl_trailer_cert_rules.py", "file_type": "code", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_complete_self_head_certs", "label": "_complete_self_head_certs()", "file_type": "code", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_huolala_trailer_helpers", "label": "test_huolala_trailer_helpers()", "file_type": "code", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L23"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_huolala_skips_trailer_required_certs", "label": "test_self_huolala_skips_trailer_required_certs()", "file_type": "code", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L34"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_normal_trailer_requires_trailer_certs", "label": "test_self_normal_trailer_requires_trailer_certs()", "file_type": "code", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_rationale_1", "label": "\u6302\u8f66\u53f7\u5206\u6d41\uff1a\u8d27\u62c9\u62c9\u514d\u6302\u8f66\u8bc1\uff1b\u81ea\u6709\u6b63\u5e38\u6302\u8f66\u53f7\u5f3a\u5236\uff1b\u4e09\u65b9\u4e0d\u5f3a\u5236\u3002", "file_type": "rationale", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "app_services_pl_cert_required_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_complete_self_head_certs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_huolala_trailer_helpers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_huolala_skips_trailer_required_certs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_normal_trailer_requires_trailer_certs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_huolala_skips_trailer_required_certs", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_complete_self_head_certs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_trailer_cert_rules.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_test_self_normal_trailer_requires_trailer_certs", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_trailer_cert_rules_complete_self_head_certs", "relation": "calls", "context": "call", "confidence": "ELine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_py", "label": "io_order.py", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_models", "label": "_models()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_get_order", "label": "_get_order()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L48"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_to_read", "label": "_to_read()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L66"}, {"id": "ioorderread", "label": "IoOrderRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_list_orders", "label": "_list_orders()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L72"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py"}, {"id": "ioorderlistresponse", "label": "IoOrderListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_patch_order", "label": "_patch_order()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L140"}, {"id": "ioorderpatch", "label": "IoOrderPatch", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/io_order.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_get_by_plan", "label": "_get_by_plan()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L197"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_get_inbound_by_plan", "label": "get_inbound_by_plan()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L222"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_list_inbound", "label": "list_inbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L235"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_ioorderexportbody", "label": "IoOrderExportBody", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L281"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_export_orders", "label": "_export_orders()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L295"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_export_inbound", "label": "export_inbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L335"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_export_outbound", "label": "export_outbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L344"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_get_inbound", "label": "get_inbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L353"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_patch_inbound", "label": "patch_inbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L364"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_inbound_site_url", "label": "inbound_site_url()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L374"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_get_outbound_by_plan", "label": "get_outbound_by_plan()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L386"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_io_order_list_outbound", "label": "list_outbound()", "file_type": "code", "source_file": "backend/app/api/pl/io_order.py", "source_location": "L399"}, {"id": "userLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_md", "label": "2026-08-20-pl-plan-list-contract-reminder-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "label": "\u8fd0\u8f93\u8ba1\u5212\u5217\u8868 \u00b7 \u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_1_\u80cc\u666f\u4e0e\u76ee\u6807", "label": "1. \u80cc\u666f\u4e0e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_2_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "2. \u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L13"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_3_\u5c55\u793a\u89c4\u5219", "label": "3. \u5c55\u793a\u89c4\u5219", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_4_\u5408\u540c\u5b8c\u5584\u9875\u5bf9\u9f50_\u540c\u65e5\u8ffd\u52a0", "label": "4. \u5408\u540c\u5b8c\u5584\u9875\u5bf9\u9f50\uff08\u540c\u65e5\u8ffd\u52a0\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L32"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_1_\u80cc\u666f\u4e0e\u76ee\u6807", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_2_\u5df2\u786e\u8ba4\u51b3\u7b56", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_3_\u5c55\u793a\u89c4\u5219", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_\u8fd0\u8f93\u8ba1\u5212\u5217\u8868_\u5408\u540c\u5217\u5c55\u793a\u4e0e\u63d0\u9192", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_20_pl_plan_list_contract_reminder_design_4_\u5408\u540c\u5b8c\u5584\u9875\u5bf9\u9f50_\u540c\u65e5\u8ffd\u52a0", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/specs/2026-08-20-pl-plan-list-contract-reminder-design.md", "source_location": "L32", Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_py", "label": "contract_approval.py", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L17"}, {"id": "crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L39"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_get_contract_approval", "label": "get_contract_approval()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L49"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_get_contract_approval_detail", "label": "get_contract_approval_detail()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L64"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_list_contract_approvals", "label": "list_contract_approvals()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_build_approval_list_filters", "label": "_build_approval_list_filters()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L99"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_list_contract_approvals_page", "label": "list_contract_approvals_page()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L113"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_create_approval_records", "label": "create_approval_records()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L134"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_delete_pending_approvals", "label": "delete_pending_approvals()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L179"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_invalidate_all_approvals", "label": "invalidate_all_approvals()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L198"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_can_user_approve", "label": "can_user_approve()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L216"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_advance_contract_after_approval", "label": "_advance_contract_after_approval()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L269"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_approve_contract", "label": "approve_contract()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L300"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_approve_contract_by_contract_id", "label": "approve_contract_by_contract_id()", "file_type": "code", "source_file": "backend/app/crud/crm/contract_approval.py", "source_location": "L348"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_contract_approval_approve_pass", "label": "aLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_ensure_customer_in_scope", "label": "_ensure_customer_in_scope()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L23"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py"}, {"id": "crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L27"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L37"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L55"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/crm/customer.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L71"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L81"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L108"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_list_customer_options", "label": "list_customer_options()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L163"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_list_customers", "label": "list_customers()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L214"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_list_pool_customers", "label": "list_pool_customers()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L343"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_get_customer", "label": "get_customer()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L372"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_get_customer_by_no", "label": "get_customer_by_no()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L383"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_generate_customer_no", "label": "generate_customer_no()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L395"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_customer_name_exists", "label": "customer_name_exists()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L421"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_check_duplicate_customer", "label": "check_duplicate_customer()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L437"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_create_customer", "label": "create_customer()", "file_type": "code", "source_file": "backend/app/crud/crm/customer.py", "source_location": "L460"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_crm_customer_update_customer", "label": "update_customer()", "file_type": "cLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_py", "label": "inventory.py", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventoryread", "label": "InventoryRead", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L14"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorytransactionread", "label": "InventoryTransactionRead", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorywarningread", "label": "InventoryWarningRead", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L61"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorywarningupdate", "label": "InventoryWarningUpdate", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L78"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorywarningthreshold", "label": "InventoryWarningThreshold", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_documentreminderread", "label": "DocumentReminderRead", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_documentreminderupdate", "label": "DocumentReminderUpdate", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_documentreminderstatsread", "label": "DocumentReminderStatsRead", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventoryledgerquery", "label": "InventoryLedgerQuery", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L132"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventoryledgerresponse", "label": "InventoryLedgerResponse", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L139"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorytransactionquery", "label": "InventoryTransactionQuery", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L144"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorytransactionresponse", "label": "InventoryTransactionResponse", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L154"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorysummaryquery", "label": "InventorySummaryQuery", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L159"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorysummaryitem", "label": "InventorySummaryItem", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L167"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_inventorysummaryresponse", "label": "InventorySummaryResponse", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_transportstatsquery", "label": "TransportStatsQuery", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L180"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_transportstatsitem", "label": "TransportStatsItem", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L187"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_transportstatsresponse", "label": "TransportStatsResponse", "file_type": "code", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L194"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_pl_inventory_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/pl/inventory.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_sLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_py", "label": "reimburse.py", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_coerce_id", "label": "_coerce_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L9"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimbursedetailcreate", "label": "ReimburseDetailCreate", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L15"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimbursedetailcreate_validate_expense_item_id", "label": ".validate_expense_item_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimbursedetailout", "label": "ReimburseDetailOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L32"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseinvoicelinkin", "label": "ReimburseInvoiceLinkIn", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L43"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseinvoicelinkin_validate_invoice_id", "label": ".validate_invoice_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseinvoicelinkin_coerce_attachment_id", "label": ".coerce_attachment_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L61"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseinvoicebriefout", "label": "ReimburseInvoiceBriefOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L65"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplycreate", "label": "ReimburseApplyCreate", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L78"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplycreate_details_must_not_be_empty", "label": ".details_must_not_be_empty()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L91"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplycreate_coerce_applicant_id", "label": ".coerce_applicant_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplyupdate", "label": "ReimburseApplyUpdate", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplyupdate_coerce_applicant_id", "label": ".coerce_applicant_id()", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L115"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimbursesubmitbody", "label": "ReimburseSubmitBody", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L119"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapplyout", "label": "ReimburseApplyOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L126"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapprovalcreate", "label": "ReimburseApprovalCreate", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L156"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapprovalout", "label": "ReimburseApprovalOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L163"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimbursemystatsout", "label": "ReimburseMyStatsOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location": "L176"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_bx_reimburse_reimburseapproverpendingstatsout", "label": "ReimburseApproverPendingStatsOut", "file_type": "code", "source_file": "backend/app/schemas/bx/reimburse.py", "source_location":Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "label": "customer_follow.py", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowlistbody", "label": "CustomerFollowListBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L8"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowcreatebody", "label": "CustomerFollowCreateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowupdatebody", "label": "CustomerFollowUpdateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L39"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowdeletebody", "label": "CustomerFollowDeleteBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowdetailbody", "label": "CustomerFollowDetailBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L59"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowbycustomerbody", "label": "CustomerFollowByCustomerBody", "file_type": "code", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L63"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_rationale_1", "label": "CRM \u5ba2\u6237\u8ddf\u8fdb\u8bb0\u5f55 Pydantic Schemas", "file_type": "rationale", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/customer_follow.py", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_customer_follow_customerfollowdeletebody", "relation": "contains", "confidLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_py", "label": "base_data.py", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_list_carriers", "label": "list_carriers()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L83"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "carrierlistresponse", "label": "CarrierListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_carrierexportbody", "label": "CarrierExportBody", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L139"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_export_carriers", "label": "export_carriers()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L150"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_create_carrier", "label": "create_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L222"}, {"id": "carriercreate", "label": "CarrierCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "carrierread", "label": "CarrierRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_get_carrier", "label": "get_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L252"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_update_carrier", "label": "update_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L263"}, {"id": "carrierupdate", "label": "CarrierUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_delete_carrier", "label": "delete_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L292"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_approve_carrier", "label": "approve_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L306"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_reject_carrier", "label": "reject_carrier()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L315"}, {"id": "carrierauditreject", "label": "CarrierAuditReject", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "plcarrier", "label": "PlCarrier", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_read", "label": "_vehicle_to_read()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L344"}, {"id": "plvehicle", "label": "PlVehicle", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "certread", "label": "CertRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "vehicleread", "label": "VehicleRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/base_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_base_data_vehicle_to_detail", "label": "_vehicle_to_detail()", "file_type": "code", "source_file": "backend/app/api/pl/base_data.py", "source_location": "L361"}, {"id": "vehicledetailread", "label": "VehiLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "label": "test_crm_contract_reedit_to_draft.py", "file_type": "code", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "label": "test_editable_statuses()", "file_type": "code", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "label": "test_assert_allows_editable()", "file_type": "code", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "label": "test_assert_rejects_non_editable()", "file_type": "code", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L23"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "pytest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "app_crud_crm_contract", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L23", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "callee": "frozenset", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L11", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_editable_statuses", "callee": "frozenset", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L12", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_allows_editable", "callee": "assert_contract_editable_for_update", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L20", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "raises", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L24", "receiver": "pytest"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "ValueError", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_location": "L24"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_contract_reedit_to_draft_test_assert_rejects_non_editable", "callee": "assert_contract_editable_for_update", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_crm_contract_reedit_to_draft.py", "source_locLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_md", "label": "2026-08-26-pl-customer-stop-pref-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_\u8fd0\u8f93\u8ba1\u5212_\u5ba2\u6237\u88c5_\u9001\u8d27\u7269\u6d41\u9ed8\u8ba4\u8bb0\u5fc6", "label": "\u8fd0\u8f93\u8ba1\u5212 \u00b7 \u5ba2\u6237\u88c5/\u9001\u8d27\u7269\u6d41\u9ed8\u8ba4\u8bb0\u5fc6", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_\u80cc\u666f\u4e0e\u76ee\u6807", "label": "\u80cc\u666f\u4e0e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L8"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "\u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L12"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_\u975e\u76ee\u6807", "label": "\u975e\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_1_\u6570\u636e\u6a21\u578b", "label": "1. \u6570\u636e\u6a21\u578b", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_2_api_\u4e0e\u540e\u7aef\u5199\u5165", "label": "2. API \u4e0e\u540e\u7aef\u5199\u5165", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_2_1_\u8bfb\u53d6", "label": "2.1 \u8bfb\u53d6", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L60"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_2_2_\u5199\u5165_\u670d\u52a1\u7aef\u9690\u5f0f", "label": "2.2 \u5199\u5165\uff08\u670d\u52a1\u7aef\u9690\u5f0f\uff09", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L69"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_\u524d\u7aef\u4ea4\u4e92", "label": "3. \u524d\u7aef\u4ea4\u4e92", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L86"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_1_\u9009\u5ba2\u6237", "label": "3.1 \u9009\u5ba2\u6237", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L90"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_2_\u6e05\u7a7a\u5ba2\u6237", "label": "3.2 \u6e05\u7a7a\u5ba2\u6237", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_3_\u7f16\u8f91\u6253\u5f00", "label": "3.3 \u7f16\u8f91\u6253\u5f00", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_4_\u4e0e\u5730\u5740\u5e93", "label": "3.4 \u4e0e\u5730\u5740\u5e93", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L106"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_3_5_\u4f53\u9a8c", "label": "3.5 \u4f53\u9a8c", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-26-pl-customer-stop-pref-design.md", "source_location": "L110"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_26_pl_customer_stop_pref_design_4_\u9a8c\u653Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "label": "test_pl_plan_print_service.py", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_stop_product", "label": "_stop_product()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L12"}, {"id": "planstopproductread", "label": "PlanStopProductRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_print_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_delivery", "label": "_delivery()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L29"}, {"id": "plandeliveryread", "label": "PlanDeliveryRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/tests/test_pl_plan_print_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_test_list_delivery_print_customers_three_distinct", "label": "test_list_delivery_print_customers_three_distinct()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_test_list_delivery_print_customers_dedupes_by_customer_id", "label": "test_list_delivery_print_customers_dedupes_by_customer_id()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_test_build_delivery_slip_print_merges_same_customer_and_uses_min_seq_contact", "label": "test_build_delivery_slip_print_merges_same_customer_and_uses_min_seq_contact()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L71"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "app_schemas_pl_plan", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "app_services_pl_plan_print_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_stop_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_stop_product", "target": "planstopproductread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_delivery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_delivery", "target": "plandeliveryread", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "backend/tests/test_pl_plan_print_service.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_print_service_test_list_delivery_print_customers_three_distinct"Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_py", "label": "pl_personnel_age.py", "file_type": "code", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "label": "refresh_personnel_ages_job()", "file_type": "code", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_rationale_11", "label": "\u6bcf\u65e5\u51cc\u6668\u91cd\u7b97 pl_personnel \u5e74\u9f84\uff08\u6709\u5408\u6cd5 18 \u4f4d\u8eab\u4efd\u8bc1\u53f7\u7684\u8bb0\u5f55\uff09\u3002", "file_type": "rationale", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L11"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_py", "target": "app_services_pl_personnel_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_rationale_11", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/tasks/pl_personnel_age.py", "source_location": "L11", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "SessionLocal", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L12", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "info", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L14", "receiver": "logger"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "refresh_personnel_ages_from_id_card", "is_member_call": false, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L15", "receiver": null}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "commit", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L16", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "info", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L17", "receiver": "logger"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "rollback", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L19", "receiver": "db"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "exception", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L20", "receiver": "logger"}, {"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_tasks_pl_personnel_age_refresh_personnel_ages_job", "callee": "close", "is_member_call": true, "source_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/tasks/pl_personnel_age.py", "source_location": "L23", "receiver": "db"}], "callable_nids": ["users_wuzilong_work_00code_shanLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_py", "label": "transport_address.py", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_address_to_read", "label": "_address_to_read()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L34"}, {"id": "pltransportaddress", "label": "PlTransportAddress", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "transportaddressread", "label": "TransportAddressRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_get_address", "label": "_get_address()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L38"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_build_address_query", "label": "_build_address_query()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_list_transport_addresses", "label": "list_transport_addresses()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L66"}, {"id": "transportaddresslistresponse", "label": "TransportAddressListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_list_all_transport_addresses", "label": "list_all_transport_addresses()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L106"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_transportaddressexportbody", "label": "TransportAddressExportBody", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L143"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_export_transport_addresses", "label": "export_transport_addresses()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L151"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_create_transport_address", "label": "create_transport_address()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L209"}, {"id": "transportaddresscreate", "label": "TransportAddressCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_get_transport_address", "label": "get_transport_address()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L236"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_update_transport_address", "label": "update_transport_address()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L247"}, {"id": "transportaddressupdate", "label": "TransportAddressUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/transport_address.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_delete_transport_address", "label": "delete_transport_address()", "file_type": "code", "source_file": "backend/app/api/pl/transport_address.py", "source_location": "L268"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_transport_address_rationale_111", "label": "\u9009\u62e9\u5668\u7528\uff1a\u4ec5\u8fd4\u56de\u542f\u7528\u4e2d\u7684\u5730\u5740\uff08\u4e0d\u5206\u9875\uff09\u3002q \u4ec5\u5339\u914d address_name\u3001full_address\u3002", "file_type": "rationale", "source_file": "bLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_md", "label": "2026-08-20-crm-invoice-paste-recognize.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_crm_\u5f00\u7968\u4fe1\u606f\u7c98\u8d34\u5feb\u901f\u8bc6\u522b_implementation_plan", "label": "CRM \u5f00\u7968\u4fe1\u606f\u7c98\u8d34\u5feb\u901f\u8bc6\u522b Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L16"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_1_\u89e3\u6790\u5de5\u5177\u5355\u6d4b_\u5148\u7ea2", "label": "Task 1: \u89e3\u6790\u5de5\u5177\u5355\u6d4b\uff08\u5148\u7ea2\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_2_\u5b9e\u73b0\u89e3\u6790\u5de5\u5177_\u8f6c\u7eff", "label": "Task 2: \u5b9e\u73b0\u89e3\u6790\u5de5\u5177\uff08\u8f6c\u7eff\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L172"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_3_invoiceinfo_vue_\u63a5\u5165\u7c98\u8d34\u8bc6\u522b_ui", "label": "Task 3: InvoiceInfo.vue \u63a5\u5165\u7c98\u8d34\u8bc6\u522b UI", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L331"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_4_\u6536\u5c3e", "label": "Task 4: \u6536\u5c3e", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L468"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_spec_coverage_\u81ea\u68c0", "label": "Spec coverage\uff08\u81ea\u68c0\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L492"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_placeholder_scan", "label": "Placeholder scan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L504"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_crm_\u5f00\u7968\u4fe1\u606f\u7c98\u8d34\u5feb\u901f\u8bc6\u522b_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_crm_\u5f00\u7968\u4fe1\u606f\u7c98\u8d34\u5feb\u901f\u8bc6\u522b_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_1_\u89e3\u6790\u5de5\u5177\u5355\u6d4b_\u5148\u7ea2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_20_crm_invoice_paste_recognize_task_2_\u5b9e\u73b0\u89e3\u6790\u5de5\u5177_\u8f6c\u7eff", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-20-crm-invoice-paste-recognize.md", "source_location": "L172",Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_md", "label": "2026-08-30-portal-home-active-module-session.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "label": "\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6 \u2014 \u5b9e\u73b0\u8ba1\u5212", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_1_\u8bfb\u5199\u5de5\u5177", "label": "Task 1: \u8bfb\u5199\u5de5\u5177", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L13"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_2_\u9996\u9875\u63a5\u5165", "label": "Task 2: \u9996\u9875\u63a5\u5165", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L20"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_3_\u767b\u51fa_\u6362\u7528\u6237\u6e05\u7406", "label": "Task 3: \u767b\u51fa / \u6362\u7528\u6237\u6e05\u7406", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_4_\u624b\u5de5\u9a8c\u8bc1", "label": "Task 4: \u624b\u5de5\u9a8c\u8bc1", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L36"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_1_\u8bfb\u5199\u5de5\u5177", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_2_\u9996\u9875\u63a5\u5165", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_3_\u767b\u51fa_\u6362\u7528\u6237\u6e05\u7406", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_\u95e8\u6237\u9996\u9875\u4fa7\u680f\u9009\u4e2d\u9879\u4f1a\u8bdd\u8bb0\u5fc6_\u5b9e\u73b0\u8ba1\u5212", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_portal_home_active_module_session_task_4_\u624b\u5de5\u9a8c\u8bc1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-portal-home-active-module-session.md", "source_location": "L36", "weight": 1.0}], "input_tokens": 0, "outpLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_py", "label": "pl_personnel_service.py", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_upsert_personnel", "label": "upsert_personnel()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L16"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py"}, {"id": "vehiclepersonnelrow", "label": "VehiclePersonnelRow", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_save_vehicle_personnel", "label": "save_vehicle_personnel()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L92"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_build_personnel_summary", "label": "build_personnel_summary()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L142"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_load_vehicle_personnel_rows", "label": "load_vehicle_personnel_rows()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L159"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_load_vehicle_personnel_summaries", "label": "load_vehicle_personnel_summaries()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L192"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_refresh_personnel_ages_from_id_card", "label": "refresh_personnel_ages_from_id_card()", "file_type": "code", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L226"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212 - \u4eba\u5458 upsert \u4e0e\u8f66\u8f86-\u4eba\u5458\u5173\u8054\u4fdd\u5b58", "file_type": "rationale", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_rationale_25", "label": "\u6309 personnelId \u2192 phone \u2192 name \u5f31\u5339\u914d upsert\uff0c\u8fd4\u56de personnel_id\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_rationale_145", "label": "links: [(personnel_name, role, is_default)] \u2192 (summary, default_driver_name).", "file_type": "rationale", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L145"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_rationale_195", "label": "\u6279\u91cf\u52a0\u8f7d personnelSummary / defaultDriverName\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L195"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_rationale_227", "label": "\u6309 18 \u4f4d\u8eab\u4efd\u8bc1\u53f7\u91cd\u7b97 pl_personnel.age\uff0c\u4ec5\u66f4\u65b0\u7b97\u51fa\u503c\u4e0e\u5e93\u4e2d\u4e0d\u4e00\u81f4\u7684\u8bb0\u5f55\u3002\u8fd4\u56de\u66f4\u65b0\u6761\u6570\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L227"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_personnel_service_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_personnel_service.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_py", "label": "pl_customer_stop_pref_service.py", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_as_str", "label": "_as_str()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L19"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_customer_stop_pref_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_row_to_item", "label": "_row_to_item()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L23"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_build_stop_pref_upsert_items", "label": "build_stop_pref_upsert_items()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L41"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_get_customer_stop_pref", "label": "get_customer_stop_pref()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L59"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_customer_stop_pref_service.py"}, {"id": "plcustomerstoppref", "label": "PlCustomerStopPref", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_customer_stop_pref_service.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_upsert_customer_stop_pref", "label": "upsert_customer_stop_pref()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L81"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_upsert_prefs_from_plan_stops", "label": "upsert_prefs_from_plan_stops()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_safe_upsert_prefs_from_plan_stops", "label": "safe_upsert_prefs_from_plan_stops()", "file_type": "code", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L136"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_rationale_46", "label": "\u62bd\u51fa\u5f85 upsert \u6761\u76ee\uff1b\u540c\u5ba2\u6237\u540c stop_type \u540e\u8005\u8986\u76d6\uff08\u4fdd\u6301\u5217\u8868\u4e2d\u6bcf\u79cd\u952e\u4e00\u6761\uff09\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_rationale_125", "label": "\u4f9b plan \u4fdd\u5b58\u8c03\u7528\uff1b\u5f02\u5e38\u7531\u8c03\u7528\u65b9\u7528 savepoint \u541e\u6389\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L125"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_rationale_145", "label": "savepoint \u5305\u88f9\uff1b\u5931\u8d25\u53ea\u8bb0\u65e5\u5fd7\uff0c\u4e0d\u629b\u7ed9\u8ba1\u5212\u4e3b\u6d41\u7a0b\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L145"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_customer_stop_pref_service_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_customer_stop_pref_service.py", "source_location": "L6", "weigLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_md", "label": "2026-08-17-reimburse-detail-occur-date-design.md", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u62a5\u9500\u660e\u7ec6_\u53d1\u751f\u65f6\u95f4_\u5b57\u6bb5_\u8bbe\u8ba1\u6587\u6863", "label": "\u62a5\u9500\u660e\u7ec6\u300c\u53d1\u751f\u65f6\u95f4\u300d\u5b57\u6bb5 \u2014 \u8bbe\u8ba1\u6587\u6863", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u80cc\u666f\u4e0e\u95ee\u9898", "label": "\u80cc\u666f\u4e0e\u95ee\u9898", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L8"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u5df2\u786e\u8ba4\u51b3\u7b56", "label": "\u5df2\u786e\u8ba4\u51b3\u7b56", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L13"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u4e00_\u76ee\u6807\u4e0e\u8303\u56f4", "label": "\u4e00\u3001\u76ee\u6807\u4e0e\u8303\u56f4", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L26"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u76ee\u6807", "label": "\u76ee\u6807", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L28"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u8303\u56f4\u5185", "label": "\u8303\u56f4\u5185", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L32"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u8303\u56f4\u5916", "label": "\u8303\u56f4\u5916", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u4e8c_\u6570\u636e\u6a21\u578b\u4e0e_api", "label": "\u4e8c\u3001\u6570\u636e\u6a21\u578b\u4e0e API", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_2_1_\u8868\u5b57\u6bb5", "label": "2.1 \u8868\u5b57\u6bb5", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L48"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_2_2_ddl_\u4e0e\u5feb\u7167", "label": "2.2 DDL \u4e0e\u5feb\u7167", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_2_3_model_schema", "label": "2.3 Model / Schema", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L63"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_2_4_\u5199\u5165\u94fe\u8def", "label": "2.4 \u5199\u5165\u94fe\u8def", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L70"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_\u4e09_\u524d\u7aef\u4ea4\u4e92", "label": "\u4e09\u3001\u524d\u7aef\u4ea4\u4e92", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detail-occur-date-design.md", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_specs_2026_08_17_reimburse_detail_occur_date_design_3_1_\u5217_\u5b57\u6bb5\u987a\u5e8f", "label": "3.1 \u5217 / \u5b57\u6bb5\u987a\u5e8f", "file_type": "document", "source_file": "docs/superpowers/specs/2026-08-17-reimburse-detaiLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "label": "__init__.py", "file_type": "code", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "target": "app_api_pl", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "target": "app_api_pl", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "target": "app_api_pl", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_init_py", "target": "app_api_pl", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/__init__.py", "source_location": "L7", "weight": 1.0}], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_py", "label": "test_pl_plan_stop_rules.py", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_internal_shanxia_load_outbound", "label": "test_internal_shanxia_load_outbound()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L12"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_internal_shanxia_delivery_inbound", "label": "test_internal_shanxia_delivery_inbound()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L18"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_internal_yundong_load_outbound", "label": "test_internal_yundong_load_outbound()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L23"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_internal_yundong_delivery_inbound", "label": "test_internal_yundong_delivery_inbound()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L28"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_external_customer_no_dibang", "label": "test_external_customer_no_dibang()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_delivery_defaults_use_delivery_customer", "label": "test_delivery_defaults_use_delivery_customer()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L38"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_normalize_stop_dibang_fields_repairs_none_direction", "label": "test_normalize_stop_dibang_fields_repairs_none_direction()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L45"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_external_empty_name_no_dibang", "label": "test_external_empty_name_no_dibang()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L56"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_balanced_returns_empty", "label": "test_warn_qty_balanced_returns_empty()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L61"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_uses_plan_qty_on_plan_products", "label": "test_warn_qty_uses_plan_qty_on_plan_products()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L68"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_load_vs_delivery_imbalance", "label": "test_warn_qty_load_vs_delivery_imbalance()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_delivery_vs_load_imbalance", "label": "test_warn_qty_delivery_vs_load_imbalance()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L85"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_load_delivery_decimal_imbalance", "label": "test_warn_qty_load_delivery_decimal_imbalance()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L95"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_multi_stop_30_equals_10_15_5_balanced", "label": "test_warn_qty_multi_stop_30_equals_10_15_5_balanced()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L105"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_sums_multiple_rows_balanced_across_stops", "label": "test_warn_qty_sums_multiple_rows_balanced_across_stops()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L117"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_pl_plan_stop_rules_test_warn_qty_sums_multiple_rows_imbalanced_across_stops", "label": "test_warn_qty_sums_multiple_rows_imbalanced_across_stops()", "file_type": "code", "source_file": "backend/tests/test_pl_plan_stop_rules.py", "source_location": "L124"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backeLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_md", "label": "spec.md", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_added_requirements", "label": "ADDED Requirements", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_requirement_\u8fd0\u8f93\u8ba1\u5212\u5f52\u6863\u652f\u6301\u6682\u5b58\u8349\u7a3f", "label": "Requirement: \u8fd0\u8f93\u8ba1\u5212\u5f52\u6863\u652f\u6301\u6682\u5b58\u8349\u7a3f", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L3"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u672a\u5f52\u6863\u8ba1\u5212\u53ef\u6682\u5b58", "label": "Scenario: \u672a\u5f52\u6863\u8ba1\u5212\u53ef\u6682\u5b58", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L7"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u5df2\u5f52\u6863\u8c03\u6574\u6a21\u5f0f\u4e0d\u63d0\u4f9b\u6682\u5b58", "label": "Scenario: \u5df2\u5f52\u6863\u8c03\u6574\u6a21\u5f0f\u4e0d\u63d0\u4f9b\u6682\u5b58", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u6682\u5b58\u540e\u518d\u6b21\u6253\u5f00\u53ef\u56de\u586b", "label": "Scenario: \u6682\u5b58\u540e\u518d\u6b21\u6253\u5f00\u53ef\u56de\u586b", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L20"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u8349\u7a3f\u53ef\u6b63\u5f0f\u5f52\u6863", "label": "Scenario: \u8349\u7a3f\u53ef\u6b63\u5f0f\u5f52\u6863", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_requirement_\u5f52\u6863\u8349\u7a3f\u63a5\u53e3", "label": "Requirement: \u5f52\u6863\u8349\u7a3f\u63a5\u53e3", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u8c03\u7528\u8349\u7a3f\u63a5\u53e3", "label": "Scenario: \u8c03\u7528\u8349\u7a3f\u63a5\u53e3", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L34"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_requirement_\u5217\u8868\u5c55\u793a\u5df2\u6682\u5b58\u72b6\u6001", "label": "Requirement: \u5217\u8868\u5c55\u793a\u5df2\u6682\u5b58\u72b6\u6001", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L40"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_scenario_\u72b6\u6001\u6807\u7b7e\u4e0e\u7b5b\u9009", "label": "Scenario: \u72b6\u6001\u6807\u7b7e\u4e0e\u7b5b\u9009", "file_type": "document", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L44"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_md", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_added_requirements", "relation": "contains", "confidence": "EXTRACTED", "source_file": "openspec/changes/pl-plan-archive-draft/specs/pl-plan-archive-draft/spec.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_added_requirements", "target": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_pl_plan_archive_draft_specs_pl_plan_archive_draft_spec_requirement_\u8fd0\u8f93\u8ba1\u5212Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_md", "label": "2026-08-30-pl-contract-qty-archived-actual.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_\u5408\u540c\u5df2\u5b89\u6392\u6570\u91cf_\u5df2\u5f52\u6863\u7528\u5b9e\u9645\u91cf_implementation_plan", "label": "\u5408\u540c\u5df2\u5b89\u6392\u6570\u91cf \u00b7 \u5df2\u5f52\u6863\u7528\u5b9e\u9645\u91cf Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_1_\u5931\u8d25\u5355\u6d4b_red", "label": "Task 1: \u5931\u8d25\u5355\u6d4b\uff08RED\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_2_\u5b9e\u73b0_green", "label": "Task 2: \u5b9e\u73b0\uff08GREEN\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L32"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_3_\u6587\u6863\u4e0e\u56fe\u8c31", "label": "Task 3: \u6587\u6863\u4e0e\u56fe\u8c31", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L39"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_\u5408\u540c\u5df2\u5b89\u6392\u6570\u91cf_\u5df2\u5f52\u6863\u7528\u5b9e\u9645\u91cf_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_\u5408\u540c\u5df2\u5b89\u6392\u6570\u91cf_\u5df2\u5f52\u6863\u7528\u5b9e\u9645\u91cf_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_1_\u5931\u8d25\u5355\u6d4b_red", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_2_\u5b9e\u73b0_green", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_contract_qty_archived_actual_task_3_\u6587\u6863\u4e0e\u56fe\u8c31", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-contract-qty-archived-actual.md", "source_location": "L39", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_md", "label": "2026-08-30-pl-plan-single-contract-products.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_\u8fd0\u8f93\u8ba1\u5212\u6bb5\u6b21\u5408\u540c\u5355\u9009_\u88c5\u8d27\u4ea7\u54c1\u9650\u5408\u540c\u5185_implementation_plan", "label": "\u8fd0\u8f93\u8ba1\u5212\u6bb5\u6b21\u5408\u540c\u5355\u9009 + \u88c5\u8d27\u4ea7\u54c1\u9650\u5408\u540c\u5185 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L17"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_1_\u540e\u7aef\u7eaf\u51fd\u6570_\u5408\u540c\u6700\u591a_1_\u4efd", "label": "Task 1: \u540e\u7aef\u7eaf\u51fd\u6570 \u2014 \u5408\u540c\u6700\u591a 1 \u4efd", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L35"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_2_\u540e\u7aef_\u88c5\u8d27\u4ea7\u54c1\u5fc5\u987b\u5c5e\u4e8e\u6240\u9009\u5408\u540c", "label": "Task 2: \u540e\u7aef \u2014 \u88c5\u8d27\u4ea7\u54c1\u5fc5\u987b\u5c5e\u4e8e\u6240\u9009\u5408\u540c", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L122"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_3_\u540e\u7aef_\u5408\u540c\u5b8c\u5584\u4e0e\u65e7_side_contracts_\u4e0a\u9650", "label": "Task 3: \u540e\u7aef \u2014 \u5408\u540c\u5b8c\u5584\u4e0e\u65e7 side contracts \u4e0a\u9650", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L313"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_4_\u524d\u7aef\u5de5\u5177\u51fd\u6570_\u5408\u540c\u4ea7\u54c1\u8fc7\u6ee4", "label": "Task 4: \u524d\u7aef\u5de5\u5177\u51fd\u6570 \u2014 \u5408\u540c\u4ea7\u54c1\u8fc7\u6ee4", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L364"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_5_plplancontractmultiselect_\u6539\u4e3a\u5355\u9009", "label": "Task 5: `PlPlanContractMultiSelect` \u6539\u4e3a\u5355\u9009", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L413"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_6_productselector_\u652f\u6301_allowedproductids", "label": "Task 6: `ProductSelector` \u652f\u6301 `allowedProductIds`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L504"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_7_\u88c5\u8d27\u7981\u7528\u6dfb\u52a0_\u8868\u5355\u8054\u52a8\u8fc7\u6ee4\u4e0e\u6821\u9a8c", "label": "Task 7: \u88c5\u8d27\u7981\u7528\u6dfb\u52a0 + \u8868\u5355\u8054\u52a8\u8fc7\u6ee4\u4e0e\u6821\u9a8c", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L566"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_8_\u9001\u8d27\u4ea7\u54c1\u5141\u8bb8\u5220\u9664", "label": "Task 8: \u9001\u8d27\u4ea7\u54c1\u5141\u8bb8\u5220\u9664", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L708"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_single_contract_products_task_9_\u5408\u540c\u5b8c\u5584\u9875\u4fdd\u5b58\u6821\u9a8c", "label": "Task 9: \u5408\u540c\u5b8c\u5584\u9875\u4fdd\u5b58\u6821\u9a8c", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-single-contract-products.md", "source_location": "L756"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_md", "label": "2026-08-16-contract-settlement-method-options.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_\u5408\u540c\u7ed3\u7b97\u65b9\u5f0f\u65b0\u589e\u9009\u9879_implementation_plan", "label": "\u5408\u540c\u7ed3\u7b97\u65b9\u5f0f\u65b0\u589e\u9009\u9879 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_1_\u5b57\u5178_sql_\u8fc1\u79fb", "label": "Task 1: \u5b57\u5178 SQL \u8fc1\u79fb", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L29"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_2_\u540e\u7aef_defaultclause_\u7eaf\u51fd\u6570_\u5355\u6d4b_tdd", "label": "Task 2: \u540e\u7aef defaultClause \u7eaf\u51fd\u6570 + \u5355\u6d4b\uff08TDD\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L76"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_3_\u540e\u7aef_save_template_\u6539\u7528\u7eaf\u51fd\u6570", "label": "Task 3: \u540e\u7aef `save_template` \u6539\u7528\u7eaf\u51fd\u6570", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L174"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_4_\u524d\u7aef_settlementclause_ts", "label": "Task 4: \u524d\u7aef `settlementClause.ts`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L211"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_5_contractdetaildialog_vue_\u6539\u7528\u5171\u4eab\u51fd\u6570", "label": "Task 5: `ContractDetailDialog.vue` \u6539\u7528\u5171\u4eab\u51fd\u6570", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L280"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_6_detail_vue_\u5bf9\u9f50_\u82e5\u4ecd\u542b\u540c\u903b\u8f91", "label": "Task 6: `detail.vue` \u5bf9\u9f50\uff08\u82e5\u4ecd\u542b\u540c\u903b\u8f91\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L318"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_task_7_\u9a8c\u6536\u4e0e\u56fe\u8c31", "label": "Task 7: \u9a8c\u6536\u4e0e\u56fe\u8c31", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L329"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_spec_coverage", "label": "Spec coverage", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L352"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_\u5408\u540c\u7ed3\u7b97\u65b9\u5f0f\u65b0\u589e\u9009\u9879_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-16-contract-settlement-method-options.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_\u5408\u540c\u7ed3\u7b97\u65b9\u5f0f\u65b0\u589e\u9009\u9879_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_16_contract_settlement_method_options_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpoweLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_py", "label": "pl_plan_stop_rules.py", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_resolve_stop_dibang_defaults", "label": "resolve_stop_dibang_defaults()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L12"}, {"id": "stoptype", "label": "StopType", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_rules.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_normalize_stop_dibang_fields", "label": "normalize_stop_dibang_fields()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L26"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_extract_qty", "label": "_extract_qty()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L46"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_rules.py"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_stop_rules.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_sum_qty", "label": "_sum_qty()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L57"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_fmt_qty", "label": "_fmt_qty()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L64"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_warn_qty_imbalance", "label": "warn_qty_imbalance()", "file_type": "code", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L70"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212\u591a\u6bb5\uff1a\u5185\u90e8\u5ba2\u6237\u5730\u78c5\u9ed8\u8ba4\u503c\u4e0e\u6570\u91cf\u5e73\u8861\u6821\u9a8c", "file_type": "rationale", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_rationale_16", "label": "\u5730\u78c5\u9ed8\u8ba4\u52fe\u9009\u4ee5\u672c\u6bb5\u5ba2\u6237\u662f\u5426\u4e3a\u5185\u90e8\u5ba2\u6237\uff08\u5c71\u5ce1/\u4e91\u680b\uff09\u4e3a\u51c6\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L16"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_rationale_32", "label": "\u5f52\u4e00\u5316\u6bb5\u6b21\u5730\u78c5\u52fe\u9009\u4e0e\u65b9\u5411\uff1a\u52fe\u9009\u4f46\u65b9\u5411\u7f3a\u5931/none \u65f6\u6309\u672c\u6bb5\u5ba2\u6237\u8865\u9ed8\u8ba4\u65b9\u5411\u3002", "file_type": "rationale", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L32"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_py", "target": "app_services_pl_internal_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_resolve_stop_dibang_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_stop_rules.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_stop_rules_resolve_stop_dibang_defaults", "target": "stoptype", "relation": "references", "context": "parameter_type", "confidencLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_py", "label": "plans.py", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_base_query", "label": "_base_query()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L54"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_list_plans", "label": "list_plans()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L62"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "purchaseplanwithfilllink", "label": "PurchasePlanWithFillLink", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_planexportbody", "label": "PlanExportBody", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L228"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_export_plans", "label": "export_plans()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L246"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_generate_plan_no", "label": "_generate_plan_no()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L299"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_create_plan", "label": "create_plan()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L306"}, {"id": "purchaseplancreate", "label": "PurchasePlanCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "purchaseplanread", "label": "PurchasePlanRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_autogeneratemonthlyresult", "label": "AutoGenerateMonthlyResult", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L349"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_run_auto_generate_monthly", "label": "run_auto_generate_monthly()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L356"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_get_plan", "label": "get_plan()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L370"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_update_plan", "label": "update_plan()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L381"}, {"id": "purchaseplanupdate", "label": "PurchasePlanUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_delete_plan", "label": "delete_plan()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L399"}, {"id": "dbpurchaseplan", "label": "DbPurchasePlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/db/plans.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_get_plan_by_id_only", "label": "_get_plan_by_id_only()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L436"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_apply_plan_product_update", "label": "_apply_plan_product_update()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L450"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_apply_plan_update", "label": "_apply_plan_update()", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L466"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_db_plans_planrelateddata", "label": "PlanRelatedData", "file_type": "code", "source_file": "backend/app/api/db/plans.py", "source_location": "L487"}, {"id": "users_wuzilong_work_00code_shanxia2_0_Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_py", "label": "payment.py", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_tenant", "label": "_tenant()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L49"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "bxusercontext", "label": "BxUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_wrap_reimburse_rows", "label": "_wrap_reimburse_rows()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L53"}, {"id": "reimburseapplyout", "label": "ReimburseApplyOut", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_list_pending_payments", "label": "list_pending_payments()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L58"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_payment_finance_stats", "label": "payment_finance_stats()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L95"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_list_processed_payments", "label": "list_processed_payments()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L105"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_pay", "label": "pay()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L142"}, {"id": "payrequest", "label": "PayRequest", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_offset", "label": "offset()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L162"}, {"id": "offsetrequest", "label": "OffsetRequest", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_batch_offset", "label": "batch_offset()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L185"}, {"id": "batchoffsetrequest", "label": "BatchOffsetRequest", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/bx/payment.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_list_advance_issues", "label": "list_advance_issues()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L208"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_advance_issue_stats", "label": "advance_issue_stats()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L255"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_paymentexportbody", "label": "PaymentExportBody", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L292"}, {"id": "bxapplylistexportbody", "label": "BxApplyListExportBody", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_export_pending_payments", "label": "export_pending_payments()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L297"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_export_processed_payments", "label": "export_processed_payments()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L334"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_export_advance_issues_xlsx", "label": "export_advance_issues_xlsx()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L371"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_export_advance_issues", "label": "export_advance_issues()", "file_type": "code", "source_file": "backend/app/api/bx/payment.py", "source_location": "L420"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_bx_payment_issue_advance", "label": "issue_advance()", "Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_md", "label": "2026-08-17-reimburse-detail-occur-date.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_\u62a5\u9500\u660e\u7ec6\u53d1\u751f\u65f6\u95f4_occur_date_implementation_plan", "label": "\u62a5\u9500\u660e\u7ec6\u53d1\u751f\u65f6\u95f4\uff08occur_date\uff09Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_1_ddl_model", "label": "Task 1: DDL + Model", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L42"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_2_parse_optional_date_\u5355\u6d4b_tdd", "label": "Task 2: parse_optional_date + \u5355\u6d4b\uff08TDD\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L104"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_3_schema_api_service_\u5199\u5165", "label": "Task 3: Schema + API + Service \u5199\u5165", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L187"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_4_web_admin_\u7533\u8bf7\u9875\u5f55\u5165_\u67e5\u770b\u5f39\u7a97", "label": "Task 4: web-admin \u7533\u8bf7\u9875\u5f55\u5165 + \u67e5\u770b\u5f39\u7a97", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L268"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_5_web_admin_\u53ea\u8bfb\u660e\u7ec6\u5217_\u5ba1\u6279_view_\u4e09\u9875", "label": "Task 5: web-admin \u53ea\u8bfb\u660e\u7ec6\u5217\uff08\u5ba1\u6279 + view \u4e09\u9875\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L359"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_6_bx_mobile_\u7533\u8bf7\u9875", "label": "Task 6: bx-mobile \u7533\u8bf7\u9875", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L398"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_7_bx_mobile_\u8be6\u60c5_\u5ba1\u6279\u53ea\u8bfb", "label": "Task 7: bx-mobile \u8be6\u60c5 / \u5ba1\u6279\u53ea\u8bfb", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L465"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_task_8_\u6536\u5c3e_\u56fe\u8c31\u66f4\u65b0_\u603b\u9a8c\u6536", "label": "Task 8: \u6536\u5c3e \u2014 \u56fe\u8c31\u66f4\u65b0 + \u603b\u9a8c\u6536", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L503"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L537"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_\u62a5\u9500\u660e\u7ec6\u53d1\u751f\u65f6\u95f4_occur_date_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-17-reimburse-detail-occur-date.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_17_reimburse_detail_occur_date_\u62a5\u9500\u660e\u7ec6\u53d1\u751f\u65f6\u95f4_occur_date_implementation_plan", "target": "usersLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_py", "label": "freight.py", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_generate_settlement_no", "label": "_generate_settlement_no()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L38"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_list_unsettled_plans", "label": "list_unsettled_plans()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L57"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "unsettledplanlistresponse", "label": "UnsettledPlanListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_list_settlements", "label": "list_settlements()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L83"}, {"id": "freightsettlementlistresponse", "label": "FreightSettlementListResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_unsettledexportbody", "label": "UnsettledExportBody", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L135"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_export_unsettled_plans", "label": "export_unsettled_plans()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L146"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_settlementexportbody", "label": "SettlementExportBody", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L193"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_export_settlements", "label": "export_settlements()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L204"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_get_settlement_by_transport", "label": "get_settlement_by_transport()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L238"}, {"id": "freightsettlementbytransportread", "label": "FreightSettlementByTransportRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_create_settlement", "label": "create_settlement()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L253"}, {"id": "freightsettlementcreate", "label": "FreightSettlementCreate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "freightsettlementread", "label": "FreightSettlementRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_get_settlement", "label": "get_settlement()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L272"}, {"id": "freightsettlementwithtransports", "label": "FreightSettlementWithTransports", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_update_settlement", "label": "update_settlement()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L285"}, {"id": "freightsettlementupdate", "label": "FreightSettlementUpdate", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/freight.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_freight_cancel_settlement", "label": "cancel_settlement()", "file_type": "code", "source_file": "backend/app/api/pl/freight.py", "source_location": "L30Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_md", "label": "2026-08-26-pl-customer-stop-pref.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_\u5ba2\u6237\u88c5_\u9001\u8d27\u7269\u6d41\u9ed8\u8ba4\u8bb0\u5fc6_implementation_plan", "label": "\u5ba2\u6237\u88c5/\u9001\u8d27\u7269\u6d41\u9ed8\u8ba4\u8bb0\u5fc6 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_\u6587\u4ef6\u7ed3\u6784", "label": "\u6587\u4ef6\u7ed3\u6784", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L15"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_1_ddl_\u8fc1\u79fb", "label": "Task 1: DDL \u8fc1\u79fb", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L35"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_2_sqlalchemy_\u6a21\u578b", "label": "Task 2: SQLAlchemy \u6a21\u578b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L88"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_3_service_\u5355\u6d4b_\u5408\u5e76\u987a\u5e8f_\u8df3\u8fc7\u7a7a\u5ba2\u6237", "label": "Task 3: Service + \u5355\u6d4b\uff08\u5408\u5e76\u987a\u5e8f / \u8df3\u8fc7\u7a7a\u5ba2\u6237\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L138"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_4_schema_get_api_\u6ce8\u518c\u8def\u7531", "label": "Task 4: Schema + GET API + \u6ce8\u518c\u8def\u7531", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L399"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_5_\u8ba1\u5212_create_full_update_\u6302\u94a9", "label": "Task 5: \u8ba1\u5212 create-full / update \u6302\u94a9", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L494"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_6_\u524d\u7aef_api", "label": "Task 6: \u524d\u7aef API", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L554"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_7_\u88c5\u8d27\u533a\u9009\u5ba2\u6237\u5e26\u51fa", "label": "Task 7: \u88c5\u8d27\u533a\u9009\u5ba2\u6237\u5e26\u51fa", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L593"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_8_\u9001\u8d27\u533a\u9009\u5ba2\u6237\u5e26\u51fa", "label": "Task 8: \u9001\u8d27\u533a\u9009\u5ba2\u6237\u5e26\u51fa", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L695"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_task_9_\u9a8c\u6536\u4e0e\u56fe\u8c31", "label": "Task 9: \u9a8c\u6536\u4e0e\u56fe\u8c31", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L747"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_spec_\u8986\u76d6\u81ea\u68c0", "label": "Spec \u8986\u76d6\u81ea\u68c0", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L777"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_placeholder_\u626b\u63cf", "label": "Placeholder \u626b\u63cf", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-26-pl-customer-stop-pref.md", "source_location": "L791"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_26_pl_customer_stop_pref_\u5ba2\u6237\u88c5_\u9001\u8d27\u7269\u6d41\u9ed8\u8ba4\u8bb0\u5fc6_implementation_plan", "relaLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "label": "customer_stop_pref.py", "file_type": "code", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_read_customer_stop_pref", "label": "read_customer_stop_pref()", "file_type": "code", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L21"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/customer_stop_pref.py"}, {"id": "dbusercontext", "label": "DbUserContext", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/customer_stop_pref.py"}, {"id": "customerstopprefread", "label": "CustomerStopPrefRead", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/api/pl/customer_stop_pref.py"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "app_core_db_auth", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "app_schemas_pl_customer_stop_pref", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "app_services_pl_customer_stop_pref_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_read_customer_stop_pref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_read_customer_stop_pref", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_read_customer_stop_pref", "target": "dbusercontext", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pref_read_customer_stop_pref", "target": "customerstopprefread", "relation": "references", "context": "generic_arg", "confidence": "EXTRACTED", "source_file": "backend/app/api/pl/customer_stop_pref.py", "source_location": "L21", "weight": 1.0}], "raw_calls": [{"caller_nid": "users_wuzilong_work_00code_shanxia2_0_backend_app_api_pl_customer_stop_pLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_py", "label": "clue.py", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluelistbody", "label": "ClueListBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L11"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluecreatebody", "label": "ClueCreateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L46"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_clueupdatebody", "label": "ClueUpdateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L77"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluedeletebody", "label": "ClueDeleteBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L84"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_clueassignbody", "label": "ClueAssignBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L90"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_clueconvertbody", "label": "ClueConvertBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L98"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluestatusbody", "label": "ClueStatusBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L109"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluelevelbody", "label": "ClueLevelBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L116"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_clueinvalidbody", "label": "ClueInvalidBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L123"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluefollowlistbody", "label": "ClueFollowListBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L134"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluefollowcreatebody", "label": "ClueFollowCreateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L142"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluefollowdeletebody", "label": "ClueFollowDeleteBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L153"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluefollowupdatebody", "label": "ClueFollowUpdateBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L159"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluestatisticsbody", "label": "ClueStatisticsBody", "file_type": "code", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L170"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_rationale_1", "label": "CRM \u7ebf\u7d22\u7ba1\u7406 Pydantic Schemas", "file_type": "rationale", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluelistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluelistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/schemas/crm/clue.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_schemas_crm_clue_cluecreatebody", "relation": "contains", "cLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "label": "test_crm_name_pinyin_search.py", "file_type": "code", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "label": "test_list_products_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L10"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "label": "test_list_products_keyword_selector_mode_excludes_product_no_includes_model()", "file_type": "code", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L31"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "label": "test_list_customers_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L60"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "label": "test_list_customer_options_keyword_includes_name_and_pinyin()", "file_type": "code", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L80"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_1", "label": "\u4ea7\u54c1/\u5ba2\u6237\u5217\u8868 keyword\uff1a\u540d\u79f0/\u7f16\u53f7/\u62fc\u97f3\u9996\u5b57\u6bcd OR \u5339\u914d\u3002", "file_type": "rationale", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_32", "label": "\u9009\u62e9\u5668\uff1a\u540d\u79f0/\u62fc\u97f3/\u89c4\u683c\u578b\u53f7\uff0c\u4e0d\u5339\u914d\u4ea7\u54c1\u7f16\u53f7\u3002", "file_type": "rationale", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L32"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "unittest_mock", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "app_crud_crm_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "app_crud_crm_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_products_keyword_selector_mode_excludes_product_no_includes_model", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customers_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L60", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_test_list_customer_options_keyword_includes_name_and_pinyin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/tests/test_crm_name_pinyin_search.py", "source_location": "L80", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_tests_test_crm_name_pinyin_search_rationale_1", "target": "uLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_md", "label": "spec.md", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_added_requirements", "label": "ADDED Requirements", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_requirement_\u7edf\u4e00_post_\u63a5\u53e3", "label": "Requirement: \u7edf\u4e00 POST \u63a5\u53e3", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L3"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u65b0\u589e\u4e1a\u52a1\u8def\u7531", "label": "Scenario: \u65b0\u589e\u4e1a\u52a1\u8def\u7531", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L9"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u5b58\u91cf\u6a21\u5757\u4e0d\u4fee\u6539", "label": "Scenario: \u5b58\u91cf\u6a21\u5757\u4e0d\u4fee\u6539", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L14"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u67e5\u8be2\u7c7b\u63a5\u53e3", "label": "Scenario: \u67e5\u8be2\u7c7b\u63a5\u53e3", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L19"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u6587\u4ef6\u4e0a\u4f20\u4e0b\u8f7d\u4f8b\u5916", "label": "Scenario: \u6587\u4ef6\u4e0a\u4f20\u4e0b\u8f7d\u4f8b\u5916", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_requirement_\u7edf\u4e00\u8bf7\u6c42\u4f53\u683c\u5f0f", "label": "Requirement: \u7edf\u4e00\u8bf7\u6c42\u4f53\u683c\u5f0f", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L33"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_\u5217\u8868\u67e5\u8be2\u8bf7\u6c42\u4f53", "label": "\u5217\u8868\u67e5\u8be2\u8bf7\u6c42\u4f53", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L37"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_\u5168\u91cf\u67e5\u8be2\u8bf7\u6c42\u4f53_\u4e0d\u5206\u9875", "label": "\u5168\u91cf\u67e5\u8be2\u8bf7\u6c42\u4f53\uff08\u4e0d\u5206\u9875\uff09", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L53"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u4ea7\u54c1\u5217\u8868\u5206\u9875\u67e5\u8be2", "label": "Scenario: \u4ea7\u54c1\u5217\u8868\u5206\u9875\u67e5\u8be2", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L65"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u4ea7\u54c1\u5206\u7c7b\u6811\u5f62\u5168\u91cf\u67e5\u8be2", "label": "Scenario: \u4ea7\u54c1\u5206\u7c7b\u6811\u5f62\u5168\u91cf\u67e5\u8be2", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L70"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u4e0b\u62c9\u9009\u9879\u5168\u91cf\u67e5\u8be2", "label": "Scenario: \u4e0b\u62c9\u9009\u9879\u5168\u91cf\u67e5\u8be2", "file_type": "document", "source_file": "openspec/changes/zkxw-engineering-standards/specs/api-conventions/spec.md", "source_location": "L75"}, {"id": "users_wuzilong_work_00code_shanxia2_0_openspec_changes_zkxw_engineering_standards_specs_api_conventions_spec_scenario_\u7981\u6b62\u8d85\u5927_pagesize_\u6a21\u62df\u5168Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_py", "label": "excel_export.py", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_exportvalidationerror", "label": "ExportValidationError", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L19"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_exportcolumn", "label": "ExportColumn", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L24"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_load_dict_label_maps", "label": "load_dict_label_maps()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L33"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_dictlabelresolver", "label": "DictLabelResolver", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L62"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_dictlabelresolver_init", "label": ".__init__()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L65"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_dictlabelresolver_resolve", "label": ".resolve()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L77"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_dictlabelresolver_row_to_cells", "label": ".row_to_cells()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L89"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_build_workbook", "label": "_build_workbook()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L93"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_workbook_to_streaming_response", "label": "workbook_to_streaming_response()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L110"}, {"id": "streamingresponse", "label": "StreamingResponse", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/utils/excel_export.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_filter_export_columns", "label": "filter_export_columns()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L130"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_assert_export_row_count", "label": "assert_export_row_count()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L146"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_export_rows_to_xlsx_response", "label": "export_rows_to_xlsx_response()", "file_type": "code", "source_file": "backend/app/utils/excel_export.py", "source_location": "L153"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_rationale_1", "label": "Excel \u5bfc\u51fa\u5de5\u5177\uff1a\u96c6\u4e2d\u5904\u7406\u5b57\u5178 code \u2192 label\uff08\u5bf9\u9f50 Java ExcelDictConvert / ExcelDictPreloadConver", "file_type": "rationale", "source_file": "backend/app/utils/excel_export.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_rationale_20", "label": "\u5bfc\u51fa\u4e1a\u52a1\u6821\u9a8c\u5931\u8d25\uff08\u7a7a\u6570\u636e / \u8d85\u9650\u7b49\uff09\uff0c\u8def\u7531\u5c42\u8f6c\u4e3a 400\u3002", "file_type": "rationale", "source_file": "backend/app/utils/excel_export.py", "source_location": "L20"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_rationale_25", "label": "\u5bfc\u51fa\u5217\u5b9a\u4e49\uff0cdict_type \u975e\u7a7a\u65f6\u81ea\u52a8\u5c06\u5b57\u5178 value \u8f6c\u4e3a label\u3002", "file_type": "rationale", "source_file": "backend/app/utils/excel_export.py", "source_location": "L25"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_utils_excel_export_rationale_38", "label": "\u9884\u52a0\u8f7d\u591a\u4e2a\u5b57\u5178\u7c7b\u578b\u7684 value\u2192label \u6620\u5c04\uff08\u5355\u6b2Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_md", "label": "2026-08-30-pl-plan-contract-qty-check.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_\u8fd0\u8f93\u8ba1\u5212\u5b89\u6392_\u5408\u540c\u6570\u91cf\u786c\u62e6\u4e0e\u6210\u529f\u540e\u63d0\u9192_implementation_plan", "label": "\u8fd0\u8f93\u8ba1\u5212\u5b89\u6392 \u00b7 \u5408\u540c\u6570\u91cf\u786c\u62e6\u4e0e\u6210\u529f\u540e\u63d0\u9192 Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L16"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_1_\u7eaf\u51fd\u6570_\u6709\u6548\u5408\u8ba1\u4e0e\u4ea7\u54c1\u5224\u5b9a", "label": "Task 1: \u7eaf\u51fd\u6570 \u2014 \u6709\u6548\u5408\u8ba1\u4e0e\u4ea7\u54c1\u5224\u5b9a", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L30"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_2_\u7f16\u6392_\u6309\u8ba1\u5212\u6536\u96c6_violations_reminders", "label": "Task 2: \u7f16\u6392 \u2014 \u6309\u8ba1\u5212\u6536\u96c6 violations / reminders", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L121"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_3_schema_arrange_api_\u63a5\u7ebf", "label": "Task 3: Schema + arrange API \u63a5\u7ebf", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L173"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_4_\u524d\u7aef\u7c7b\u578b\u4e0e\u5f39\u7a97", "label": "Task 4: \u524d\u7aef\u7c7b\u578b\u4e0e\u5f39\u7a97", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L231"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_5_\u9a8c\u8bc1\u4e0e\u56fe\u8c31", "label": "Task 5: \u9a8c\u8bc1\u4e0e\u56fe\u8c31", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L263"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_\u6267\u884c\u5907\u6ce8", "label": "\u6267\u884c\u5907\u6ce8", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L272"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_md", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_\u8fd0\u8f93\u8ba1\u5212\u5b89\u6392_\u5408\u540c\u6570\u91cf\u786c\u62e6\u4e0e\u6210\u529f\u540e\u63d0\u9192_implementation_plan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_\u8fd0\u8f93\u8ba1\u5212\u5b89\u6392_\u5408\u540c\u6570\u91cf\u786c\u62e6\u4e0e\u6210\u529f\u540e\u63d0\u9192_implementation_plan", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_file_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_file_map", "target": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_task_1_\u7eaf\u51fd\u6570_\u6709\u6548\u5408\u8ba1\u4e0e\u4ea7\u54c1\u5224\u5b9a", "relation": "contains", "confidence": "EXTRACTED", "source_file": "docs/superpowers/plans/2026-08-30-pl-plan-contract-qty-check.md", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_30_pl_plan_contract_qty_check_file_map", "target": "users_wuzilong_work_00cLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_md", "label": "2026-08-21-web-admin-list-export.md", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_web_admin_\u5217\u8868\u7edf\u4e00\u540e\u7aef\u5bfc\u51fa_implementation_plan", "label": "web-admin \u5217\u8868\u7edf\u4e00\u540e\u7aef\u5bfc\u51fa Implementation Plan", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_file_map", "label": "File map", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L17"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_1_\u540e\u7aef\u5bfc\u51fa\u8f85\u52a9\u51fd\u6570_\u5355\u6d4b", "label": "Task 1: \u540e\u7aef\u5bfc\u51fa\u8f85\u52a9\u51fd\u6570 + \u5355\u6d4b", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L34"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_2_\u6837\u677f\u540e\u7aef_post_web_admin_users_export", "label": "Task 2: \u6837\u677f\u540e\u7aef `POST /web/admin/users/export`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L181"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_3_\u524d\u7aef\u4e0b\u8f7d\u5de5\u5177_listexportdropdown", "label": "Task 3: \u524d\u7aef\u4e0b\u8f7d\u5de5\u5177 + `ListExportDropdown`", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L357"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_4_\u6837\u677f\u9875\u63a5\u5165_\u7cfb\u7edf\u7528\u6237", "label": "Task 4: \u6837\u677f\u9875\u63a5\u5165 \u2014 \u7cfb\u7edf\u7528\u6237", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L566"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_5_\u5bf9\u9f50\u5df2\u6709_crm_\u5bfc\u51fa\u4ea4\u4e92_\u4ea7\u54c1\u9875\u4e3a\u8303\u4f8b", "label": "Task 5: \u5bf9\u9f50\u5df2\u6709 CRM \u5bfc\u51fa\u4ea4\u4e92\uff08\u4ea7\u54c1\u9875\u4e3a\u8303\u4f8b\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L641"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_6_\u6279\u5904\u7406\u914d\u65b9_\u6bcf\u4e2a\u7f3a\u5bfc\u51fa\u5217\u8868\u9875\u91cd\u590d\u672c\u914d\u65b9", "label": "Task 6: \u6279\u5904\u7406\u914d\u65b9\uff08\u6bcf\u4e2a\u7f3a\u5bfc\u51fa\u5217\u8868\u9875\u91cd\u590d\u672c\u914d\u65b9\uff09", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L686"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_7_\u6a21\u5757\u6ce2\u6b21_\u7cfb\u7edf\u7ba1\u7406", "label": "Task 7: \u6a21\u5757\u6ce2\u6b21 \u2014 \u7cfb\u7edf\u7ba1\u7406", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L707"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_8_\u6a21\u5757\u6ce2\u6b21_\u7269\u6d41_pl", "label": "Task 8: \u6a21\u5757\u6ce2\u6b21 \u2014 \u7269\u6d41 pl", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L736"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_9_\u6a21\u5757\u6ce2\u6b21_\u62a5\u9500_bx", "label": "Task 9: \u6a21\u5757\u6ce2\u6b21 \u2014 \u62a5\u9500 bx", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L763"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_10_\u6a21\u5757\u6ce2\u6b21_crm_\u5269\u4f59_\u5730\u78c5_demo", "label": "Task 10: \u6a21\u5757\u6ce2\u6b21 \u2014 CRM \u5269\u4f59 + \u5730\u78c5 + Demo", "file_type": "document", "source_file": "docs/superpowers/plans/2026-08-21-web-admin-list-export.md", "source_location": "L781"}, {"id": "users_wuzilong_work_00code_shanxia2_0_docs_superpowers_plans_2026_08_21_web_admin_list_export_task_11_\u56de\u5Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "label": "clear_pl_plan_instance_data.py", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_engine_from_env", "label": "_engine_from_env()", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L23"}, {"id": "engine", "label": "Engine", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/scripts/clear_pl_plan_instance_data.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_table_exists", "label": "_table_exists()", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L32"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_count", "label": "_count()", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L43"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_delete", "label": "_delete()", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L52"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_main", "label": "main()", "file_type": "code", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L60"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_rationale_1", "label": "\u6e05\u7a7a\u8fd0\u8f93\u8ba1\u5212\uff08pl_plan\uff09\u53ca\u5173\u8054\u5b9e\u4f8b\u6570\u636e\uff0c\u4fbf\u4e8e\u6d4b\u8bd5\u73af\u5883\u91cd\u65b0\u8d70\u6d41\u7a0b\u3002 \u7528\u6cd5\uff08\u5728 backend \u76ee\u5f55\u3001\u5df2\u914d\u7f6e .env DATABASE_URL\uff09\uff1a p", "file_type": "rationale", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "urllib_parse", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "sqlalchemy_engine", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_engine_from_env", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_engine_from_env", "target": "engine", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_scripts_clear_pl_plan_instance_data_table_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/scripts/clear_pl_plan_instance_data.Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "label": "pl_plan_arrange_copy_flags.py", "file_type": "code", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_planarrangecopyflags", "label": "PlanArrangeCopyFlags", "file_type": "code", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L28"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_load_plan_arrange_copy_flags", "label": "load_plan_arrange_copy_flags()", "file_type": "code", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L34"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_arrange_copy_flags.py"}, {"id": "plplan", "label": "PlPlan", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/services/pl_plan_arrange_copy_flags.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_rationale_1", "label": "\u8fd0\u8f93\u8ba1\u5212\u5217\u8868\uff1a\u6279\u91cf\u8ba1\u7b97\u300c\u590d\u5236\u7ed9\u53f8\u673a / \u73b0\u573a / \u78c5\u5355\u4e8c\u7ef4\u7801\u300d\u6309\u94ae\u663e\u793a\u6807\u5fd7\u3002 \u8bed\u4e49\u4e0e\u67e5\u770b\u5f39\u7a97 / usePlPlanArrangeActions / buil", "file_type": "rationale", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "dataclasses", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "app_models_pl_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "app_services_pl_dibang_bridge_service", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "app_services_pl_internal_customer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_planarrangecopyflags", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_load_plan_arrange_copy_flags", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_load_plan_arrange_copy_flags", "target": "session", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/app/services/pl_plan_arrange_copy_flags.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_services_pl_plan_arrange_copy_flags_load_plan_arrange_copy_flags", "target": "plplan", "relation": "referLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "label": "oper_log.py", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_oper_status", "label": "_oper_status()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L16"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_row_to_oper_log", "label": "_row_to_oper_log()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L20"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_apply_oper_log_scope", "label": "_apply_oper_log_scope()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L56"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/Users/wuzilong/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_oper_log_row_in_scope", "label": "_oper_log_row_in_scope()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L102"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_list_oper_logs", "label": "list_oper_logs()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L112"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_get_oper_log", "label": "get_oper_log()", "file_type": "code", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L188"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_rationale_1", "label": "\u64cd\u4f5c\u65e5\u5fd7\uff1a\u57fa\u4e8e sys_api_request_log \u9002\u914d RuoYi OperLog \u89c6\u56fe", "file_type": "rationale", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_rationale_57", "label": "\u64cd\u4f5c\u65e5\u5fd7\u6309 oper_user_id\uff08user_id/create_by\uff09\u5e94\u7528\u6570\u636e\u6743\u9650\u3002", "file_type": "rationale", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L57"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "app_core_oper_log_infer", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "app_models_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_oper_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/crud/monitor/oper_log.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_crud_monitor_oper_log_row_to_oper_log", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/crudLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "label": "duty_models.py", "file_type": "code", "source_file": "backend/app/models/duty_models.py", "source_location": "L1"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyday", "label": "DutyDay", "file_type": "code", "source_file": "backend/app/models/duty_models.py", "source_location": "L35"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyslot", "label": "DutySlot", "file_type": "code", "source_file": "backend/app/models/duty_models.py", "source_location": "L55"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyassignment", "label": "DutyAssignment", "file_type": "code", "source_file": "backend/app/models/duty_models.py", "source_location": "L79"}, {"id": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_rationale_1", "label": "\u503c\u73ed\u6392\u73ed\u6a21\u578b \u2014 docs/superpowers/specs/2026-08-14-duty-schedule-design.md", "file_type": "rationale", "source_file": "backend/app/models/duty_models.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyday", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyday", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyslot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L55", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyslot", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L55", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyassignment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L79", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyassignment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L79", "weight": 1.0}, {"source": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_rationale_1", "target": "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "backend/app/models/duty_models.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [], "callable_nids": ["users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyassignment", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyday", "users_wuzilong_work_00code_shanxia2_0_backend_app_models_duty_models_dutyslot"]}
|
||||
Loaded 100 of 269 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user