提交
This commit is contained in:
1 parent
dacfdc9ff6
commit
f9676f8759
906 files changed
+533306
-12946
No files matched your search
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"sessionID": "ses_17f66cf13ffeo6JpSbBDM7Jx4t",
|
||||
"updatedAt": "2026-06-01T00:35:39.756Z",
|
||||
"sources": {
|
||||
"background-task": {
|
||||
"state": "idle",
|
||||
"updatedAt": "2026-06-01T00:35:39.756Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"reason":"owner process exited","timestamp":1780401916605}
|
||||
@@ -0,0 +1 @@
|
||||
2095
|
||||
+1
-1
@@ -1 +1 @@
|
||||
95961
|
||||
85220
|
||||
@@ -13,6 +13,7 @@ from app.core.data_scope import apply_data_scope
|
||||
from app.core.database import get_db
|
||||
from app.core.menu_guard import require_admin_or_super_admin, require_menu_code
|
||||
from app.core.response import success_response, error_response
|
||||
from app.core.attachment_biz import resolve_upload_folder
|
||||
from app.core.storage import storage
|
||||
from app.crud import tenant as tenant_svc
|
||||
from app.crud import dict_type as dict_type_svc
|
||||
@@ -74,13 +75,21 @@ async def list_users_for_select(
|
||||
_user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
"""返回用户下拉选项(label=昵称,value=用户ID),供流程设计器审批人选择使用。"""
|
||||
"""返回用户下拉选项(label=昵称,value=用户ID,附带 nickName/userNo),供审批人选择等场景使用。"""
|
||||
tenant_no = _user.get("tenant_no", "")
|
||||
q = db.query(SysUser).filter(SysUser.del_flag == 0, SysUser.status == "1")
|
||||
if tenant_no:
|
||||
q = q.filter(SysUser.tenant_no == tenant_no)
|
||||
rows = q.order_by(SysUser.create_time.desc()).all()
|
||||
out = [{"label": (r.nick_name or r.user_no or ""), "value": r.id} for r in rows]
|
||||
out = [
|
||||
{
|
||||
"label": (r.nick_name or r.user_no or ""),
|
||||
"value": r.id,
|
||||
"nickName": r.nick_name or "",
|
||||
"userNo": r.user_no or "",
|
||||
}
|
||||
for r in rows
|
||||
]
|
||||
return success_response(out)
|
||||
|
||||
|
||||
@@ -1315,14 +1324,18 @@ def _format_file_size(size_bytes: int) -> str:
|
||||
async def upload_attachment(
|
||||
file: UploadFile = File(...),
|
||||
folder: Optional[str] = Form(""),
|
||||
biz_type: Optional[str] = Form(None, alias="bizType"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
if not file or not file.filename:
|
||||
return error_response(400, "请选择文件")
|
||||
try:
|
||||
effective_folder = resolve_upload_folder(
|
||||
folder=folder or "", biz_type=biz_type or ""
|
||||
)
|
||||
file_content = await file.read()
|
||||
full_url = storage.upload_file(file_content, file.filename, folder or "")
|
||||
full_url = storage.upload_file(file_content, file.filename, effective_folder)
|
||||
base_url = settings.MINIO_BASE_URL.rstrip("/") if settings.MINIO_BASE_URL else ""
|
||||
if base_url and full_url.startswith(base_url + "/"):
|
||||
file_url = full_url[len(base_url) + 1:]
|
||||
@@ -1340,8 +1353,9 @@ async def upload_attachment(
|
||||
file_suffix=file_ext,
|
||||
file_size=file_size,
|
||||
file_type=file_type,
|
||||
biz_type=(biz_type or "").strip(),
|
||||
user_id=user.get("user_id"),
|
||||
ext1=folder or None,
|
||||
ext1=effective_folder or None,
|
||||
)
|
||||
return success_response({
|
||||
"id": record.id,
|
||||
@@ -1350,6 +1364,7 @@ async def upload_attachment(
|
||||
"fileSize": record.file_size,
|
||||
"fileSizeDisplay": _format_file_size(record.file_size or 0),
|
||||
"fileType": record.file_type,
|
||||
"bizType": record.biz_type or "",
|
||||
})
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
|
||||
+24
-8
@@ -7,6 +7,7 @@ from typing import Any, Dict, List
|
||||
from urllib.parse import quote
|
||||
|
||||
from fastapi import APIRouter, Depends, File, Form, UploadFile
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import get_db
|
||||
@@ -31,6 +32,7 @@ from app.crud.crm.product import (
|
||||
get_category,
|
||||
get_product,
|
||||
list_categories,
|
||||
list_category_tree,
|
||||
list_product_options,
|
||||
list_products,
|
||||
product_no_exists,
|
||||
@@ -322,7 +324,15 @@ async def category_tree(
|
||||
"""获取产品分类树"""
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
rows = list_categories(db, tenant_no)
|
||||
payload = body or {}
|
||||
category_name = payload.get("categoryName") or payload.get("category_name")
|
||||
status = payload.get("status")
|
||||
rows = list_category_tree(
|
||||
db,
|
||||
tenant_no,
|
||||
category_name=category_name,
|
||||
status=status,
|
||||
)
|
||||
return success_response(rows)
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
@@ -430,7 +440,6 @@ async def customer_update(
|
||||
|
||||
data = body.model_dump(exclude_unset=True)
|
||||
customer_id = data.pop("id")
|
||||
|
||||
if "customer_name" in data:
|
||||
if customer_name_exists(db, data["customer_name"], tenant_no, exclude_id=customer_id):
|
||||
return error_response(400, "客户名称已存在")
|
||||
@@ -737,7 +746,7 @@ async def product_import(
|
||||
for idx, row in enumerate(rows, start=2):
|
||||
row_errors: List[str] = []
|
||||
try:
|
||||
# 列: 产品编号、产品名称、分类名称、规格型号、单位、标准单价、成本价、状态、包装规格、备注
|
||||
# 列: 产品编号、产品名称、分类名称、规格型号、单位、标准单价、成本价、状态、备注
|
||||
product_no = str(row[0]).strip() if row[0] else None
|
||||
product_name = str(row[1]).strip() if row[1] else ""
|
||||
category_name = str(row[2]).strip() if row[2] else None
|
||||
@@ -750,8 +759,7 @@ async def product_import(
|
||||
status = "on"
|
||||
elif status == "0":
|
||||
status = "off"
|
||||
package_spec = str(row[8]).strip() if row[8] else None
|
||||
remark = str(row[9]).strip() if row[9] else None
|
||||
remark = str(row[8]).strip() if row[8] else None
|
||||
|
||||
# 必填校验
|
||||
if not product_name:
|
||||
@@ -786,7 +794,6 @@ async def product_import(
|
||||
price=price,
|
||||
cost_price=cost_price,
|
||||
status=status,
|
||||
package_spec=package_spec,
|
||||
remark=remark,
|
||||
)
|
||||
success_count += 1
|
||||
@@ -859,7 +866,6 @@ async def product_import_template(
|
||||
"标准单价",
|
||||
"成本价",
|
||||
"状态(on上架/off下架)",
|
||||
"包装规格",
|
||||
"备注",
|
||||
]
|
||||
ws.append(headers)
|
||||
@@ -1390,6 +1396,9 @@ async def contact_list(
|
||||
rows, total = list_contacts(
|
||||
db, tenant_no, page=page, page_size=page_size,
|
||||
keyword=body.keyword if body else None,
|
||||
contact_name=body.contact_name if body else None,
|
||||
mobile=body.mobile if body else None,
|
||||
position=body.position if body else None,
|
||||
customer_id=body.customer_id if body else None,
|
||||
is_key=body.is_key if body else None,
|
||||
is_primary=body.is_primary if body else None,
|
||||
@@ -3670,6 +3679,7 @@ async def clue_follow_list(
|
||||
page=body.page,
|
||||
page_size=body.pageSize,
|
||||
)
|
||||
enrich_clue_user_names(db, rows)
|
||||
return success_response({
|
||||
"list": rows,
|
||||
"total": total,
|
||||
@@ -3693,7 +3703,12 @@ async def clue_follow_create(
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
user_id = _user.get("user_id", "") or _user.get("id", "")
|
||||
user_name = _user.get("nick_name", "") or _user.get("user_name", "")
|
||||
user_name = (
|
||||
_user.get("real_name", "")
|
||||
or _user.get("nick_name", "")
|
||||
or _user.get("user_name", "")
|
||||
or _user.get("username", "")
|
||||
)
|
||||
result = create_clue_follow(
|
||||
db,
|
||||
tenant_no,
|
||||
@@ -3982,6 +3997,7 @@ async def clue_follow_detail(
|
||||
detail = get_clue_follow(db, follow_id)
|
||||
if not detail:
|
||||
return error_response(404, "跟进记录不存在")
|
||||
enrich_clue_user_names(db, [detail])
|
||||
return success_response(detail)
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
@@ -590,13 +590,15 @@ def register_quote_routes(router):
|
||||
):
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
user_id = _user.get("user_id", "") or _user.get("id", "")
|
||||
approve_quote(
|
||||
db,
|
||||
body.id,
|
||||
tenant_no=tenant_no,
|
||||
approval_result=body.approvalResult,
|
||||
approval_opinion=body.approvalOpinion,
|
||||
remark=body.remark,
|
||||
approval_opinion=body.approvalOpinion or "",
|
||||
remark=body.remark or "",
|
||||
user_id=user_id,
|
||||
)
|
||||
return success_response(None, message="审批成功")
|
||||
except ValueError as e:
|
||||
@@ -612,7 +614,14 @@ def register_quote_routes(router):
|
||||
):
|
||||
try:
|
||||
tenant_no = get_tenant_no(db, _user)
|
||||
withdraw_approval(db, body.quoteId, tenant_no=tenant_no, remark=body.remark)
|
||||
user_id = _user.get("user_id", "") or _user.get("id", "")
|
||||
withdraw_approval(
|
||||
db,
|
||||
body.quoteId,
|
||||
tenant_no=tenant_no,
|
||||
remark=body.remark or "",
|
||||
user_id=user_id,
|
||||
)
|
||||
return success_response(None, message="撤回成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
"""附件上传 bizType 与 MinIO 目录映射(对齐原 CRM oss 上传语义)"""
|
||||
from __future__ import annotations
|
||||
|
||||
# bizType → MinIO 相对目录(folder 未传时使用)
|
||||
BIZ_TYPE_DEFAULT_FOLDER: dict[str, str] = {
|
||||
"crm_contract_attachment": "crm/contract",
|
||||
"crm_contract_price_letter": "crm/contract/price-letter",
|
||||
"crm_contract_file": "crm/contract",
|
||||
"crm_quote_attachment": "crm/quote",
|
||||
"crm_customer_follow_attachment": "crm/customer/follow",
|
||||
"crm_opportunity_follow_attachment": "crm/opportunity/follow",
|
||||
"crm_clue_follow_attachment": "crm/clue/follow",
|
||||
}
|
||||
|
||||
|
||||
def resolve_upload_folder(*, folder: str = "", biz_type: str = "") -> str:
|
||||
"""优先使用显式 folder;否则按 bizType 映射默认目录。"""
|
||||
explicit = (folder or "").strip()
|
||||
if explicit:
|
||||
return explicit
|
||||
return BIZ_TYPE_DEFAULT_FOLDER.get((biz_type or "").strip(), "")
|
||||
@@ -76,6 +76,9 @@ def list_contacts(
|
||||
page: int = 1,
|
||||
page_size: int = 10,
|
||||
keyword: str = None,
|
||||
contact_name: str = None,
|
||||
mobile: str = None,
|
||||
position: str = None,
|
||||
customer_id: str = None,
|
||||
status: str = None,
|
||||
is_key: int = None,
|
||||
@@ -97,9 +100,20 @@ def list_contacts(
|
||||
CrmContact.contact_name.like(like),
|
||||
CrmContact.mobile.like(like),
|
||||
CrmContact.email.like(like),
|
||||
CrmContact.position.like(like),
|
||||
)
|
||||
)
|
||||
|
||||
name_kw = (contact_name or "").strip()
|
||||
if name_kw:
|
||||
q = q.filter(CrmContact.contact_name.like(f"%{name_kw}%"))
|
||||
mobile_kw = (mobile or "").strip()
|
||||
if mobile_kw:
|
||||
q = q.filter(CrmContact.mobile.like(f"%{mobile_kw}%"))
|
||||
position_kw = (position or "").strip()
|
||||
if position_kw:
|
||||
q = q.filter(CrmContact.position.like(f"%{position_kw}%"))
|
||||
|
||||
if customer_id:
|
||||
q = q.filter(CrmContact.customer_id == customer_id)
|
||||
if status:
|
||||
|
||||
@@ -25,6 +25,7 @@ from app.crud.crm.contract_product import (
|
||||
list_contract_products,
|
||||
)
|
||||
from app.crud.crm.customer import get_customer
|
||||
from app.crud.crm.invoice_info import list_invoice_info_by_customer
|
||||
from app.crud.crm.product import resolve_product_id_for_quote_item
|
||||
from app.crud.crm.quote import get_quote
|
||||
from app.crud.crm.quote_product import list_quote_products
|
||||
@@ -109,6 +110,40 @@ def _resolve_user_display_name(db: Session, user_id: Optional[str]) -> str:
|
||||
return (u.nick_name or u.user_no or "").strip()
|
||||
|
||||
|
||||
def _is_blank(value: Any) -> bool:
|
||||
return value is None or str(value).strip() == ""
|
||||
|
||||
|
||||
def _first_non_blank(*values: Any) -> str:
|
||||
for value in values:
|
||||
text = "" if value is None else str(value).strip()
|
||||
if text:
|
||||
return text
|
||||
return ""
|
||||
|
||||
|
||||
def _get_default_invoice_info(db: Session, *, tenant_no: str, customer_id: str) -> Optional[dict]:
|
||||
rows = list_invoice_info_by_customer(db, tenant_no, customer_id)
|
||||
if not rows:
|
||||
return None
|
||||
for row in rows:
|
||||
if str(row.get("isDefault") or "").strip() == "1":
|
||||
return row
|
||||
return rows[0]
|
||||
|
||||
|
||||
def _build_customer_address(customer: Any) -> str:
|
||||
if not customer:
|
||||
return ""
|
||||
address_parts = [
|
||||
_first_non_blank(getattr(customer, "province", "")),
|
||||
_first_non_blank(getattr(customer, "city", "")),
|
||||
_first_non_blank(getattr(customer, "district", "")),
|
||||
_first_non_blank(getattr(customer, "address", "")),
|
||||
]
|
||||
return "".join([part for part in address_parts if part])
|
||||
|
||||
|
||||
def _row_to_dict(row: CrmContract) -> Dict[str, Any]:
|
||||
"""ORM → camelCase(单点真相)"""
|
||||
return {
|
||||
@@ -262,6 +297,11 @@ def _build_contract_filters(
|
||||
_get_field(filters, "pending_approval_user_id", "pendingApprovalUserId") or ""
|
||||
).strip()
|
||||
if pending_approval_user_id:
|
||||
# 仅返回当前处于审批中且审批状态为待审批的合同,避免历史审批记录混入草稿/已审批数据
|
||||
q = q.filter(
|
||||
CrmContract.status == "approving",
|
||||
CrmContract.approval_status == "pending",
|
||||
)
|
||||
q = q.filter(
|
||||
CrmContract.id.in_(
|
||||
db.query(CrmContractApproval.contract_id)
|
||||
@@ -279,6 +319,8 @@ def _build_contract_filters(
|
||||
_get_field(filters, "approved_by_user_id", "approvedByUserId") or ""
|
||||
).strip()
|
||||
if approved_by_user_id:
|
||||
# 已审批列表应只看审批流已结束的合同,排除仍在审批中的记录
|
||||
q = q.filter(CrmContract.approval_status.in_(("approved", "rejected")))
|
||||
contract_ids = [
|
||||
cid
|
||||
for (cid,) in db.query(CrmContractApproval.contract_id)
|
||||
@@ -382,11 +424,67 @@ def get_contract(
|
||||
detail["ownerUserName"] = _resolve_user_display_name(db, detail["ownerUserId"])
|
||||
|
||||
supplier_id = (detail.get("supplierId") or "").strip()
|
||||
supplier = None
|
||||
if supplier_id:
|
||||
supplier = get_supplier_info(db, supplier_id, tenant_no=tenant_no)
|
||||
if supplier:
|
||||
detail["supplierName"] = supplier.supplier_name or ""
|
||||
|
||||
customer = None
|
||||
customer_id = (detail.get("customerId") or "").strip()
|
||||
if customer_id:
|
||||
customer = get_customer(db, customer_id)
|
||||
|
||||
# 查询兜底:历史空数据按基础资料补展示,不改变原始库存量
|
||||
if supplier:
|
||||
if _is_blank(detail.get("partyA")):
|
||||
detail["partyA"] = _first_non_blank(getattr(supplier, "supplier_name", ""))
|
||||
if _is_blank(detail.get("partyAAddress")):
|
||||
detail["partyAAddress"] = _first_non_blank(getattr(supplier, "supplier_address", ""))
|
||||
if _is_blank(detail.get("partyALegalPerson")):
|
||||
detail["partyALegalPerson"] = _first_non_blank(getattr(supplier, "legal_person", ""))
|
||||
if _is_blank(detail.get("partyAAgent")):
|
||||
detail["partyAAgent"] = _first_non_blank(getattr(supplier, "agent", ""))
|
||||
if _is_blank(detail.get("partyAPhoneFax")):
|
||||
detail["partyAPhoneFax"] = _first_non_blank(getattr(supplier, "phone_fax", ""))
|
||||
if _is_blank(detail.get("partyABank")):
|
||||
detail["partyABank"] = _first_non_blank(getattr(supplier, "bank_name", ""))
|
||||
if _is_blank(detail.get("partyAAccount")):
|
||||
detail["partyAAccount"] = _first_non_blank(getattr(supplier, "bank_account", ""))
|
||||
|
||||
if customer:
|
||||
inv = _get_default_invoice_info(db, tenant_no=tenant_no, customer_id=customer_id)
|
||||
if _is_blank(detail.get("partyB")):
|
||||
detail["partyB"] = _first_non_blank(
|
||||
inv.get("companyName") if inv else "",
|
||||
customer.customer_name,
|
||||
)
|
||||
if _is_blank(detail.get("partyBAddress")):
|
||||
detail["partyBAddress"] = _first_non_blank(
|
||||
inv.get("companyAddress") if inv else "",
|
||||
_build_customer_address(customer),
|
||||
)
|
||||
if _is_blank(detail.get("partyBContact")):
|
||||
detail["partyBContact"] = _first_non_blank(detail.get("contactName"))
|
||||
if _is_blank(detail.get("partyBMobile")):
|
||||
detail["partyBMobile"] = _first_non_blank(
|
||||
inv.get("phoneFax") if inv else "",
|
||||
detail.get("contactMobile"),
|
||||
customer.mobile,
|
||||
customer.telephone,
|
||||
)
|
||||
if _is_blank(detail.get("partyBLegalPerson")):
|
||||
detail["partyBLegalPerson"] = _first_non_blank(inv.get("legalRepresentative") if inv else "")
|
||||
if _is_blank(detail.get("partyBPhoneFax")):
|
||||
detail["partyBPhoneFax"] = _first_non_blank(
|
||||
inv.get("phoneFax") if inv else "",
|
||||
customer.telephone,
|
||||
)
|
||||
if _is_blank(detail.get("partyBBank")):
|
||||
detail["partyBBank"] = _first_non_blank(inv.get("bankName") if inv else "")
|
||||
if _is_blank(detail.get("partyBAccount")):
|
||||
detail["partyBAccount"] = _first_non_blank(inv.get("bankAccount") if inv else "")
|
||||
|
||||
detail["products"] = list_contract_products(
|
||||
db,
|
||||
contract_id,
|
||||
@@ -681,6 +779,7 @@ def _apply_contract_entity_fields(
|
||||
entity.approval_status = None
|
||||
|
||||
customer_id = (entity.customer_id or "").strip()
|
||||
customer = None
|
||||
if customer_id:
|
||||
customer = get_customer(db, customer_id)
|
||||
if customer and tenant_no and customer.tenant_no != tenant_no:
|
||||
@@ -699,6 +798,61 @@ def _apply_contract_entity_fields(
|
||||
entity.owner_user_id = owner_id
|
||||
entity.owner_user_name = _resolve_user_display_name(db, owner_id)
|
||||
|
||||
supplier = None
|
||||
supplier_id = (entity.supplier_id or "").strip()
|
||||
if supplier_id:
|
||||
supplier = get_supplier_info(db, supplier_id, tenant_no=tenant_no)
|
||||
|
||||
# 后端兜底:当新增/编辑未显式传入供需方信息时,按供应商与客户基础资料补齐,避免写入空数据
|
||||
if supplier:
|
||||
if _is_blank(entity.party_a):
|
||||
entity.party_a = _first_non_blank(getattr(supplier, "supplier_name", ""))
|
||||
if _is_blank(entity.party_a_address):
|
||||
entity.party_a_address = _first_non_blank(getattr(supplier, "supplier_address", ""))
|
||||
if _is_blank(entity.party_a_legal_person):
|
||||
entity.party_a_legal_person = _first_non_blank(getattr(supplier, "legal_person", ""))
|
||||
if _is_blank(entity.party_a_agent):
|
||||
entity.party_a_agent = _first_non_blank(getattr(supplier, "agent", ""))
|
||||
if _is_blank(entity.party_a_phone_fax):
|
||||
entity.party_a_phone_fax = _first_non_blank(getattr(supplier, "phone_fax", ""))
|
||||
if _is_blank(entity.party_a_bank):
|
||||
entity.party_a_bank = _first_non_blank(getattr(supplier, "bank_name", ""))
|
||||
if _is_blank(entity.party_a_account):
|
||||
entity.party_a_account = _first_non_blank(getattr(supplier, "bank_account", ""))
|
||||
|
||||
if customer:
|
||||
inv = _get_default_invoice_info(db, tenant_no=tenant_no, customer_id=customer_id)
|
||||
if _is_blank(entity.party_b):
|
||||
entity.party_b = _first_non_blank(
|
||||
inv.get("companyName") if inv else "",
|
||||
customer.customer_name,
|
||||
)
|
||||
if _is_blank(entity.party_b_address):
|
||||
entity.party_b_address = _first_non_blank(
|
||||
inv.get("companyAddress") if inv else "",
|
||||
_build_customer_address(customer),
|
||||
)
|
||||
if _is_blank(entity.party_b_contact):
|
||||
entity.party_b_contact = _first_non_blank(entity.contact_name)
|
||||
if _is_blank(entity.party_b_mobile):
|
||||
entity.party_b_mobile = _first_non_blank(
|
||||
inv.get("phoneFax") if inv else "",
|
||||
entity.contact_mobile,
|
||||
customer.mobile,
|
||||
customer.telephone,
|
||||
)
|
||||
if _is_blank(entity.party_b_legal_person):
|
||||
entity.party_b_legal_person = _first_non_blank(inv.get("legalRepresentative") if inv else "")
|
||||
if _is_blank(entity.party_b_phone_fax):
|
||||
entity.party_b_phone_fax = _first_non_blank(
|
||||
inv.get("phoneFax") if inv else "",
|
||||
customer.telephone,
|
||||
)
|
||||
if _is_blank(entity.party_b_bank):
|
||||
entity.party_b_bank = _first_non_blank(inv.get("bankName") if inv else "")
|
||||
if _is_blank(entity.party_b_account):
|
||||
entity.party_b_account = _first_non_blank(inv.get("bankAccount") if inv else "")
|
||||
|
||||
received = entity.received_amount if entity.received_amount is not None else Decimal("0")
|
||||
invoice = entity.invoice_amount if entity.invoice_amount is not None else Decimal("0")
|
||||
amount = entity.amount if entity.amount is not None else Decimal("0")
|
||||
|
||||
@@ -134,25 +134,10 @@ def _row_to_dict(row: CrmCustomer) -> Dict[str, Any]:
|
||||
"assignTime": row.assign_time.strftime(_FMT) if row.assign_time else "",
|
||||
"assignBy": row.assign_by or "",
|
||||
"protectTime": row.protect_time.strftime(_FMT) if row.protect_time else "",
|
||||
"certType": row.cert_type or "",
|
||||
"certNo": row.cert_no or "",
|
||||
"certPositiveImg": row.cert_positive_img or "",
|
||||
"certNegativeImg": row.cert_negative_img or "",
|
||||
"socialCreditCode": row.social_credit_code or "",
|
||||
"legalPerson": row.legal_person or "",
|
||||
"registeredCapital": row.registered_capital or "",
|
||||
"businessScope": row.business_scope or "",
|
||||
"registeredAddress": row.registered_address or "",
|
||||
"businessLicenseImg": row.business_license_img or "",
|
||||
"businessLicenseImages": row.business_license_img or "",
|
||||
"businessPermitImages": row.business_permit_images or "",
|
||||
"otherCertImages": row.other_cert_images or "",
|
||||
"invoiceTitle": row.invoice_title or "",
|
||||
"taxNo": row.tax_no or "",
|
||||
"invoiceBank": row.invoice_bank or "",
|
||||
"invoiceAccount": row.invoice_account or "",
|
||||
"invoiceAddress": row.invoice_address or "",
|
||||
"invoicePhone": row.invoice_phone or "",
|
||||
"clueId": row.clue_id or "",
|
||||
"orderNum": row.order_num if row.order_num is not None else 0,
|
||||
"remark": row.remark or "",
|
||||
@@ -424,24 +409,9 @@ def create_customer(
|
||||
contact_count=0,
|
||||
opportunity_count=0,
|
||||
contract_count=0,
|
||||
cert_type=kwargs.get("cert_type"),
|
||||
cert_no=kwargs.get("cert_no"),
|
||||
cert_positive_img=kwargs.get("cert_positive_img"),
|
||||
cert_negative_img=kwargs.get("cert_negative_img"),
|
||||
social_credit_code=kwargs.get("social_credit_code"),
|
||||
legal_person=kwargs.get("legal_person"),
|
||||
registered_capital=kwargs.get("registered_capital"),
|
||||
business_scope=kwargs.get("business_scope"),
|
||||
registered_address=kwargs.get("registered_address"),
|
||||
business_license_img=kwargs.get("business_license_img"),
|
||||
business_permit_images=kwargs.get("business_permit_images"),
|
||||
other_cert_images=kwargs.get("other_cert_images"),
|
||||
invoice_title=kwargs.get("invoice_title"),
|
||||
tax_no=kwargs.get("tax_no"),
|
||||
invoice_bank=kwargs.get("invoice_bank"),
|
||||
invoice_account=kwargs.get("invoice_account"),
|
||||
invoice_address=kwargs.get("invoice_address"),
|
||||
invoice_phone=kwargs.get("invoice_phone"),
|
||||
clue_id=kwargs.get("clue_id"),
|
||||
next_time=_parse_optional_datetime(kwargs.get("next_time")),
|
||||
tenant_no=tenant_no,
|
||||
@@ -472,12 +442,9 @@ def update_customer(
|
||||
"customer_name", "short_name", "customer_type", "mobile", "telephone",
|
||||
"email", "website", "level", "source", "industry", "park_area",
|
||||
"payment_terms", "scale", "province", "city", "district", "address",
|
||||
"cert_type", "cert_no", "cert_positive_img", "cert_negative_img",
|
||||
"social_credit_code", "legal_person", "registered_capital",
|
||||
"business_scope", "registered_address", "business_license_img",
|
||||
"business_license_img",
|
||||
"business_permit_images", "other_cert_images",
|
||||
"invoice_title", "tax_no", "invoice_bank", "invoice_account",
|
||||
"invoice_address", "invoice_phone", "clue_id", "order_num", "remark",
|
||||
"clue_id", "order_num", "remark",
|
||||
"next_time",
|
||||
)
|
||||
_datetime_fields = {"next_time"}
|
||||
|
||||
@@ -9,6 +9,7 @@ from sqlalchemy import func, or_
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.utils import generate_uuid
|
||||
from app.crud.crm.customer import _resolve_user_display_name
|
||||
from app.models.crm_models import CrmCustomerFollow
|
||||
|
||||
|
||||
@@ -21,6 +22,15 @@ def total_pages(total: int, page_size: int) -> int:
|
||||
_FMT = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
|
||||
def _enrich_follow_dict(db: Session, item: Dict[str, Any]) -> Dict[str, Any]:
|
||||
if not item.get("ownerUserName"):
|
||||
uid = item.get("ownerUserId") or item.get("createBy")
|
||||
if uid:
|
||||
item["ownerUserName"] = _resolve_user_display_name(db, uid)
|
||||
item["createByName"] = item.get("ownerUserName") or ""
|
||||
return item
|
||||
|
||||
|
||||
def _row_to_dict(row: CrmCustomerFollow) -> Dict[str, Any]:
|
||||
return {
|
||||
"id": row.id,
|
||||
@@ -38,6 +48,7 @@ def _row_to_dict(row: CrmCustomerFollow) -> Dict[str, Any]:
|
||||
"orderNum": row.order_num if row.order_num is not None else 0,
|
||||
"remark": row.remark or "",
|
||||
"createBy": row.create_by or "",
|
||||
"createByName": row.owner_user_name or "",
|
||||
"createTime": row.create_time.strftime(_FMT) if row.create_time else "",
|
||||
"updateBy": row.update_by or "",
|
||||
"updateTime": row.update_time.strftime(_FMT) if row.update_time else "",
|
||||
@@ -94,7 +105,7 @@ def list_follows(
|
||||
.limit(page_size)
|
||||
.all()
|
||||
)
|
||||
return [_row_to_dict(r) for r in rows], int(total)
|
||||
return [_enrich_follow_dict(db, _row_to_dict(r)) for r in rows], int(total)
|
||||
|
||||
|
||||
def list_follows_by_customer(
|
||||
@@ -112,7 +123,7 @@ def list_follows_by_customer(
|
||||
.order_by(CrmCustomerFollow.follow_time.desc())
|
||||
.all()
|
||||
)
|
||||
return [_row_to_dict(r) for r in rows]
|
||||
return [_enrich_follow_dict(db, _row_to_dict(r)) for r in rows]
|
||||
|
||||
|
||||
def get_follow(db: Session, follow_id: str) -> Optional[CrmCustomerFollow]:
|
||||
@@ -157,7 +168,7 @@ def create_follow(
|
||||
next_time=kwargs.get("next_time"),
|
||||
attachment=kwargs.get("attachment"),
|
||||
owner_user_id=user_id,
|
||||
owner_user_name=user_name,
|
||||
owner_user_name=user_name or "",
|
||||
tenant_no=tenant_no,
|
||||
order_num=kwargs.get("order_num"),
|
||||
remark=kwargs.get("remark"),
|
||||
|
||||
@@ -18,6 +18,7 @@ def _row_to_dict(row: CrmInvoiceInfo) -> Dict[str, Any]:
|
||||
"id": row.id,
|
||||
"customerId": row.customer_id or "",
|
||||
"companyName": row.company_name or "",
|
||||
"taxNo": row.tax_no or "",
|
||||
"companyAddress": row.company_address or "",
|
||||
"legalRepresentative": row.legal_representative or "",
|
||||
"agent": row.agent or "",
|
||||
@@ -104,6 +105,7 @@ def create_invoice_info(
|
||||
id=generate_uuid(),
|
||||
customer_id=customer_id,
|
||||
company_name=company_name,
|
||||
tax_no=kwargs.get("tax_no") or "",
|
||||
company_address=kwargs.get("company_address") or "",
|
||||
legal_representative=kwargs.get("legal_representative") or "",
|
||||
agent=kwargs.get("agent") or "",
|
||||
@@ -141,6 +143,7 @@ def update_invoice_info(
|
||||
|
||||
_updatable = (
|
||||
"company_name",
|
||||
"tax_no",
|
||||
"company_address",
|
||||
"legal_representative",
|
||||
"agent",
|
||||
|
||||
+153
-13
@@ -42,20 +42,88 @@ def _category_row_to_dict(row: CrmProductCategory) -> Dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
def list_categories(db: Session, tenant_no: str) -> List[Dict[str, Any]]:
|
||||
"""获取全部分类(不分页,用于树形展示)"""
|
||||
rows = (
|
||||
db.query(CrmProductCategory)
|
||||
.filter(
|
||||
CrmProductCategory.tenant_no == tenant_no,
|
||||
CrmProductCategory.del_flag == 0,
|
||||
)
|
||||
.order_by(CrmProductCategory.order_num.asc(), CrmProductCategory.create_time.asc())
|
||||
.all()
|
||||
def list_categories(
|
||||
db: Session,
|
||||
tenant_no: str,
|
||||
*,
|
||||
category_name: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""获取分类(扁平列表,支持名称模糊与状态筛选)"""
|
||||
q = db.query(CrmProductCategory).filter(
|
||||
CrmProductCategory.tenant_no == tenant_no,
|
||||
CrmProductCategory.del_flag == 0,
|
||||
)
|
||||
name_kw = (category_name or "").strip()
|
||||
if name_kw:
|
||||
q = q.filter(CrmProductCategory.category_name.like(f"%{name_kw}%"))
|
||||
if status is not None and str(status).strip() != "":
|
||||
q = q.filter(CrmProductCategory.status == str(status).strip())
|
||||
rows = q.order_by(
|
||||
CrmProductCategory.order_num.asc(),
|
||||
CrmProductCategory.create_time.asc(),
|
||||
).all()
|
||||
return [_category_row_to_dict(r) for r in rows]
|
||||
|
||||
|
||||
def _build_category_tree(
|
||||
items: List[Dict[str, Any]], parent_id: str = "0"
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""按 parentId 将扁平分类列表组装为嵌套树"""
|
||||
children = [item for item in items if (item.get("parentId") or "0") == parent_id]
|
||||
for child in children:
|
||||
child["children"] = _build_category_tree(items, child["id"])
|
||||
children.sort(key=lambda x: (x.get("orderNum", 0) or 0))
|
||||
return children
|
||||
|
||||
|
||||
def _collect_category_with_ancestors(
|
||||
items: List[Dict[str, Any]], seed_ids: set[str]
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""保留匹配节点及其全部上级,供检索后仍能正确组树。"""
|
||||
by_id = {item["id"]: item for item in items if item.get("id")}
|
||||
keep: set[str] = set()
|
||||
for sid in seed_ids:
|
||||
cur = (sid or "").strip()
|
||||
while cur and cur != "0":
|
||||
if cur not in by_id:
|
||||
break
|
||||
keep.add(cur)
|
||||
cur = (by_id[cur].get("parentId") or "0").strip()
|
||||
return [by_id[i] for i in keep if i in by_id]
|
||||
|
||||
|
||||
def list_category_tree(
|
||||
db: Session,
|
||||
tenant_no: str,
|
||||
*,
|
||||
category_name: Optional[str] = None,
|
||||
status: Optional[str] = None,
|
||||
) -> List[Dict[str, Any]]:
|
||||
"""获取产品分类树(嵌套 children,供树形表格/树选择器使用)"""
|
||||
name_kw = (category_name or "").strip()
|
||||
status_val = str(status).strip() if status is not None else ""
|
||||
has_filter = bool(name_kw) or bool(status_val)
|
||||
|
||||
if not has_filter:
|
||||
flat = list_categories(db, tenant_no)
|
||||
return _build_category_tree(flat)
|
||||
|
||||
matched = list_categories(
|
||||
db,
|
||||
tenant_no,
|
||||
category_name=category_name,
|
||||
status=status,
|
||||
)
|
||||
if not matched:
|
||||
return []
|
||||
|
||||
all_flat = list_categories(db, tenant_no)
|
||||
seed_ids = {m["id"] for m in matched if m.get("id")}
|
||||
expanded = _collect_category_with_ancestors(all_flat, seed_ids)
|
||||
return _build_category_tree(expanded)
|
||||
|
||||
|
||||
def get_category(db: Session, category_id: str) -> Optional[CrmProductCategory]:
|
||||
"""根据ID获取分类"""
|
||||
return (
|
||||
@@ -206,11 +274,17 @@ def _product_row_to_dict(row: CrmProduct) -> Dict[str, Any]:
|
||||
"categoryName": row.category_name or "",
|
||||
"model": row.model or "",
|
||||
"unit": row.unit,
|
||||
"barcode": row.barcode or "",
|
||||
"price": float(row.price) if row.price else 0.0,
|
||||
"costPrice": float(row.cost_price) if row.cost_price else 0.0,
|
||||
"cost": float(row.cost_price) if row.cost_price else 0.0,
|
||||
"stock": row.stock if row.stock is not None else 0,
|
||||
"lowStock": row.low_stock if row.low_stock is not None else 10,
|
||||
"taxRate": float(row.tax_rate) if row.tax_rate is not None else 13.0,
|
||||
"status": row.status,
|
||||
"description": row.description or "",
|
||||
"packageSpec": row.package_spec or "",
|
||||
"images": row.images or "",
|
||||
"saleCount": row.sale_count if row.sale_count is not None else 0,
|
||||
"orderNum": row.order_num if row.order_num is not None else 0,
|
||||
"remark": row.remark or "",
|
||||
"createTime": row.create_time.strftime("%Y-%m-%d %H:%M:%S") if row.create_time else "",
|
||||
@@ -314,6 +388,34 @@ def generate_product_no(db: Session, tenant_no: str) -> str:
|
||||
return f"{prefix}{seq:03d}"
|
||||
|
||||
|
||||
def generate_barcode(db: Session, tenant_no: str) -> str:
|
||||
"""生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001)"""
|
||||
today_str = datetime.now().strftime("%Y%m%d")
|
||||
prefix = today_str
|
||||
|
||||
max_barcode = (
|
||||
db.query(CrmProduct.barcode)
|
||||
.filter(
|
||||
CrmProduct.barcode.like(f"{prefix}%"),
|
||||
CrmProduct.tenant_no == tenant_no,
|
||||
CrmProduct.del_flag == 0,
|
||||
)
|
||||
.order_by(CrmProduct.barcode.desc())
|
||||
.first()
|
||||
)
|
||||
|
||||
if max_barcode and max_barcode[0]:
|
||||
seq_str = max_barcode[0][len(prefix):]
|
||||
try:
|
||||
seq = int(seq_str) + 1
|
||||
except ValueError:
|
||||
seq = 1
|
||||
else:
|
||||
seq = 1
|
||||
|
||||
return f"{prefix}{seq:06d}"
|
||||
|
||||
|
||||
def create_product(
|
||||
db: Session,
|
||||
*,
|
||||
@@ -326,6 +428,12 @@ def create_product(
|
||||
if not product_no:
|
||||
product_no = generate_product_no(db, tenant_no)
|
||||
|
||||
barcode = _normalize_text(kwargs.get("barcode"))
|
||||
if not barcode:
|
||||
barcode = generate_barcode(db, tenant_no)
|
||||
elif barcode_exists(db, barcode, tenant_no):
|
||||
raise ValueError(f"条码 {barcode} 已存在")
|
||||
|
||||
# 如果传了 category_id,查分类表冗余写入 category_name
|
||||
category_id = kwargs.get("category_id")
|
||||
category_name = kwargs.get("category_name")
|
||||
@@ -342,11 +450,16 @@ def create_product(
|
||||
category_name=category_name or "",
|
||||
model=kwargs.get("model"),
|
||||
unit=kwargs.get("unit", "件"),
|
||||
barcode=barcode,
|
||||
price=kwargs.get("price", 0),
|
||||
cost_price=kwargs.get("cost_price"),
|
||||
stock=kwargs.get("stock", 0),
|
||||
low_stock=kwargs.get("low_stock", 10),
|
||||
tax_rate=kwargs.get("tax_rate", Decimal("13.00")),
|
||||
status=kwargs.get("status", "on"),
|
||||
description=kwargs.get("description"),
|
||||
package_spec=kwargs.get("package_spec"),
|
||||
images=kwargs.get("images"),
|
||||
sale_count=kwargs.get("sale_count", 0),
|
||||
tenant_no=tenant_no,
|
||||
order_num=kwargs.get("order_num"),
|
||||
remark=kwargs.get("remark"),
|
||||
@@ -380,15 +493,25 @@ def update_product(
|
||||
"unit",
|
||||
"price",
|
||||
"cost_price",
|
||||
"stock",
|
||||
"low_stock",
|
||||
"tax_rate",
|
||||
"status",
|
||||
"description",
|
||||
"package_spec",
|
||||
"images",
|
||||
"sale_count",
|
||||
"order_num",
|
||||
"remark",
|
||||
):
|
||||
if field in kwargs and kwargs[field] is not None:
|
||||
setattr(obj, field, kwargs[field])
|
||||
|
||||
if "barcode" in kwargs:
|
||||
barcode = _normalize_text(kwargs.get("barcode"))
|
||||
if barcode and barcode_exists(db, barcode, tenant_no=obj.tenant_no, exclude_id=product_id):
|
||||
raise ValueError(f"条码 {barcode} 已存在")
|
||||
obj.barcode = barcode or None
|
||||
|
||||
# category_id 变了则同步更新 category_name
|
||||
if "category_id" in kwargs and kwargs["category_id"] is not None:
|
||||
cat_id = kwargs["category_id"]
|
||||
@@ -432,6 +555,23 @@ def product_no_exists(
|
||||
return q.first() is not None
|
||||
|
||||
|
||||
def barcode_exists(
|
||||
db: Session,
|
||||
barcode: str,
|
||||
tenant_no: str,
|
||||
exclude_id: str = None,
|
||||
) -> bool:
|
||||
"""检查条码是否已存在"""
|
||||
q = db.query(CrmProduct).filter(
|
||||
CrmProduct.barcode == barcode,
|
||||
CrmProduct.tenant_no == tenant_no,
|
||||
CrmProduct.del_flag == 0,
|
||||
)
|
||||
if exclude_id:
|
||||
q = q.filter(CrmProduct.id != exclude_id)
|
||||
return q.first() is not None
|
||||
|
||||
|
||||
def list_product_options(
|
||||
db: Session,
|
||||
tenant_no: str,
|
||||
|
||||
@@ -8,8 +8,8 @@ from datetime import date, datetime, timedelta
|
||||
from decimal import Decimal, ROUND_HALF_UP
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
from sqlalchemy import func, or_
|
||||
from sqlalchemy.orm import Query, Session
|
||||
from sqlalchemy import exists, func, or_
|
||||
from sqlalchemy.orm import Query, Session, aliased
|
||||
|
||||
from app.core.utils import generate_uuid
|
||||
from app.crud.crm.contact import get_contact
|
||||
@@ -247,6 +247,29 @@ def _build_quote_filters(
|
||||
elif end_time:
|
||||
q = q.filter(CrmQuote.create_time <= end_time)
|
||||
|
||||
pending_approval_user_id = (
|
||||
_get_field(filters, "pending_approval_user_id", "pendingApprovalUserId") or ""
|
||||
).strip()
|
||||
if pending_approval_user_id:
|
||||
# 待审批 Tab:仅返回当前轮到该用户审批的报价单(顺序审批,前序步骤均已通过)
|
||||
q = q.filter(CrmQuote.status == "submitted")
|
||||
user_approval = aliased(CrmQuoteApproval)
|
||||
prior_approval = aliased(CrmQuoteApproval)
|
||||
q = q.filter(
|
||||
exists().where(
|
||||
user_approval.quote_id == CrmQuote.id,
|
||||
user_approval.approver_id == pending_approval_user_id,
|
||||
user_approval.approval_result == "pending",
|
||||
user_approval.del_flag == 0,
|
||||
~exists().where(
|
||||
prior_approval.quote_id == user_approval.quote_id,
|
||||
prior_approval.step < user_approval.step,
|
||||
prior_approval.approval_result != "approved",
|
||||
prior_approval.del_flag == 0,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
approved_by_user_id = (_get_field(filters, "approved_by_user_id", "approvedByUserId") or "").strip()
|
||||
if approved_by_user_id:
|
||||
q = q.filter(
|
||||
@@ -420,7 +443,7 @@ def _enrich_contact_fields(db: Session, entity: CrmQuote) -> None:
|
||||
|
||||
|
||||
def _enrich_supplier_name(db: Session, entity: CrmQuote, tenant_no: str) -> None:
|
||||
if not entity.supplier_id or entity.supplier_name:
|
||||
if not entity.supplier_id:
|
||||
return
|
||||
supplier = get_supplier_info(db, entity.supplier_id, tenant_no=tenant_no)
|
||||
if supplier:
|
||||
@@ -471,10 +494,13 @@ def get_quote_detail(
|
||||
if owner and owner.phone_no:
|
||||
detail["ownerUserMobile"] = owner.phone_no
|
||||
|
||||
if obj.supplier_id and not detail.get("supplierName"):
|
||||
if obj.supplier_id:
|
||||
supplier = get_supplier_info(db, obj.supplier_id, tenant_no=tenant_no or obj.tenant_no)
|
||||
if supplier:
|
||||
detail["supplierName"] = supplier.supplier_name or ""
|
||||
if supplier.supplier_name:
|
||||
detail["supplierName"] = supplier.supplier_name
|
||||
detail["supplierCode"] = supplier.supplier_code or ""
|
||||
detail["supplierShortName"] = supplier.short_name or ""
|
||||
|
||||
return detail
|
||||
|
||||
@@ -644,6 +670,7 @@ def update_quote(
|
||||
(("opportunity_id", "opportunityId"), "opportunity_id"),
|
||||
(("contact_id", "contactId"), "contact_id"),
|
||||
(("contact_name", "contactName"), "contact_name"),
|
||||
(("supplier_name", "supplierName"), "supplier_name"),
|
||||
(("payment_terms", "paymentTerms"), "payment_terms"),
|
||||
(("delivery_terms", "deliveryTerms"), "delivery_terms"),
|
||||
(("attachments",), "attachments"),
|
||||
@@ -707,6 +734,9 @@ def update_quote(
|
||||
_enrich_contact_fields(db, old)
|
||||
_enrich_supplier_name(db, old, tenant_no)
|
||||
|
||||
if supplier_changed:
|
||||
old.template_content = None
|
||||
|
||||
if product_rows is not None:
|
||||
_resolve_quote_product_ids(db, tenant_no=tenant_no, products=product_rows, user_id=user_id)
|
||||
calculate_quote_amount(old, product_rows)
|
||||
|
||||
@@ -60,12 +60,19 @@ def list_quote_approvals(
|
||||
return result
|
||||
|
||||
|
||||
def get_quote_approval(db: Session, approval_id: str) -> Optional[CrmQuoteApproval]:
|
||||
return (
|
||||
db.query(CrmQuoteApproval)
|
||||
.filter(CrmQuoteApproval.id == approval_id, CrmQuoteApproval.del_flag == 0)
|
||||
.first()
|
||||
def get_quote_approval(
|
||||
db: Session,
|
||||
approval_id: str,
|
||||
*,
|
||||
tenant_no: str = None,
|
||||
) -> Optional[CrmQuoteApproval]:
|
||||
q = db.query(CrmQuoteApproval).filter(
|
||||
CrmQuoteApproval.id == approval_id,
|
||||
CrmQuoteApproval.del_flag == 0,
|
||||
)
|
||||
if tenant_no:
|
||||
q = q.filter(CrmQuoteApproval.tenant_no == tenant_no)
|
||||
return q.first()
|
||||
|
||||
|
||||
def create_approval_records(
|
||||
@@ -114,17 +121,22 @@ def approve_quote(
|
||||
db: Session,
|
||||
approval_id: str,
|
||||
*,
|
||||
tenant_no: str = None,
|
||||
approval_result: str,
|
||||
approval_opinion: str = "",
|
||||
remark: str = "",
|
||||
user_id: str = None,
|
||||
) -> bool:
|
||||
"""Java: approveQuote"""
|
||||
entity = get_quote_approval(db, approval_id)
|
||||
entity = get_quote_approval(db, approval_id, tenant_no=tenant_no)
|
||||
if not entity:
|
||||
raise ValueError("审批记录不存在")
|
||||
if user_id and entity.approver_id != user_id:
|
||||
raise ValueError("只有审批人才能审批")
|
||||
if entity.approval_result != "pending":
|
||||
raise ValueError("该审批已处理")
|
||||
if user_id and not can_user_approve(db, entity.quote_id, user_id):
|
||||
raise ValueError("前置审批步骤尚未完成,暂时无法审批")
|
||||
|
||||
entity.approval_result = approval_result
|
||||
entity.approval_opinion = approval_opinion or ""
|
||||
@@ -133,11 +145,13 @@ def approve_quote(
|
||||
entity.update_by = user_id
|
||||
entity.update_time = datetime.now()
|
||||
|
||||
quote = (
|
||||
db.query(CrmQuote)
|
||||
.filter(CrmQuote.id == entity.quote_id, CrmQuote.del_flag == 0)
|
||||
.first()
|
||||
quote_q = db.query(CrmQuote).filter(
|
||||
CrmQuote.id == entity.quote_id,
|
||||
CrmQuote.del_flag == 0,
|
||||
)
|
||||
if tenant_no:
|
||||
quote_q = quote_q.filter(CrmQuote.tenant_no == tenant_no)
|
||||
quote = quote_q.first()
|
||||
if quote:
|
||||
if approval_result == "approved":
|
||||
pending_count = (
|
||||
@@ -152,13 +166,15 @@ def approve_quote(
|
||||
)
|
||||
if pending_count == 0:
|
||||
quote.status = "accepted"
|
||||
quote.update_by = user_id
|
||||
quote.update_time = datetime.now()
|
||||
elif approval_result == "rejected":
|
||||
quote.status = "rejected"
|
||||
quote.reject_reason = f"审批拒绝: {approval_opinion or ''}".strip()
|
||||
quote.update_by = user_id
|
||||
quote.update_time = datetime.now()
|
||||
|
||||
db.flush()
|
||||
db.commit()
|
||||
return True
|
||||
|
||||
|
||||
@@ -166,15 +182,18 @@ def withdraw_approval(
|
||||
db: Session,
|
||||
quote_id: str,
|
||||
*,
|
||||
tenant_no: str = None,
|
||||
remark: str = "",
|
||||
user_id: str = None,
|
||||
) -> bool:
|
||||
"""Java: CrmQuoteApprovalServiceImpl.withdrawApproval(不校验创建人)"""
|
||||
quote = (
|
||||
db.query(CrmQuote)
|
||||
.filter(CrmQuote.id == quote_id, CrmQuote.del_flag == 0)
|
||||
.first()
|
||||
quote_q = db.query(CrmQuote).filter(
|
||||
CrmQuote.id == quote_id,
|
||||
CrmQuote.del_flag == 0,
|
||||
)
|
||||
if tenant_no:
|
||||
quote_q = quote_q.filter(CrmQuote.tenant_no == tenant_no)
|
||||
quote = quote_q.first()
|
||||
if not quote:
|
||||
raise ValueError("报价单不存在")
|
||||
if quote.status != "submitted":
|
||||
@@ -186,7 +205,7 @@ def withdraw_approval(
|
||||
quote.remark = remark
|
||||
quote.update_by = user_id
|
||||
quote.update_time = datetime.now()
|
||||
db.flush()
|
||||
db.commit()
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@@ -52,11 +52,16 @@ class CrmProduct(Base):
|
||||
category_name = Column(String(100), nullable=True, comment="分类名称(冗余)")
|
||||
model = Column(String(100), nullable=True, comment="规格型号")
|
||||
unit = Column(String(20), nullable=False, default="件", comment="单位")
|
||||
barcode = Column(String(100), nullable=True, comment="条码")
|
||||
price = Column(DECIMAL(15, 2), nullable=False, default=0.00, comment="标准单价")
|
||||
cost_price = Column(DECIMAL(15, 2), nullable=True, default=0.00, comment="成本价")
|
||||
stock = Column(Integer, nullable=False, default=0, comment="库存数量")
|
||||
low_stock = Column(Integer, nullable=False, default=10, comment="库存预警值")
|
||||
tax_rate = Column(DECIMAL(5, 2), nullable=False, default=13.00, comment="税率(百分比)")
|
||||
status = Column(String(3), nullable=False, default="on", comment="状态 on 上架 off 下架")
|
||||
description = Column(Text, nullable=True, comment="产品描述")
|
||||
package_spec = Column(String(200), nullable=True, comment="包装规格")
|
||||
images = Column(String(1000), nullable=True, comment="产品图片(多个用逗号分隔)")
|
||||
sale_count = Column(Integer, nullable=False, default=0, comment="销售次数")
|
||||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||||
remark = Column(String(512), nullable=True, comment="备注")
|
||||
@@ -163,30 +168,11 @@ class CrmCustomer(Base):
|
||||
assign_by = Column(String(64), nullable=True, comment="分配人ID")
|
||||
protect_time = Column(DateTime, nullable=True, comment="保护到期时间")
|
||||
|
||||
# 证件信息
|
||||
cert_type = Column(String(50), nullable=True, comment="证件类型(字典 crm_cert_type)")
|
||||
cert_no = Column(String(100), nullable=True, comment="证件号码")
|
||||
cert_positive_img = Column(String(1000), nullable=True, comment="证件正面照(附件URL,逗号分隔)")
|
||||
cert_negative_img = Column(String(1000), nullable=True, comment="证件反面照(附件URL,逗号分隔)")
|
||||
|
||||
# 企业信息
|
||||
social_credit_code = Column(String(50), nullable=True, comment="社会信用代码")
|
||||
legal_person = Column(String(50), nullable=True, comment="法人")
|
||||
registered_capital = Column(String(100), nullable=True, comment="注册资本")
|
||||
business_scope = Column(String(500), nullable=True, comment="经营范围")
|
||||
registered_address = Column(String(255), nullable=True, comment="注册地址")
|
||||
# 证照附件
|
||||
business_license_img = Column(String(1000), nullable=True, comment="营业执照图片(附件URL,逗号分隔)")
|
||||
business_permit_images = Column(String(1000), nullable=True, comment="经营许可证图片(附件URL,逗号分隔)")
|
||||
other_cert_images = Column(String(1000), nullable=True, comment="其他证件图片(附件URL,逗号分隔)")
|
||||
|
||||
# 开票信息
|
||||
invoice_title = Column(String(200), nullable=True, comment="开票抬头")
|
||||
tax_no = Column(String(50), nullable=True, comment="税号")
|
||||
invoice_bank = Column(String(200), nullable=True, comment="开户行")
|
||||
invoice_account = Column(String(50), nullable=True, comment="银行账号")
|
||||
invoice_address = Column(String(255), nullable=True, comment="开票地址")
|
||||
invoice_phone = Column(String(30), nullable=True, comment="开票电话")
|
||||
|
||||
# 线索关联
|
||||
clue_id = Column(String(64), nullable=True, comment="关联线索ID(从线索转化)")
|
||||
|
||||
@@ -245,6 +231,7 @@ class CrmInvoiceInfo(Base):
|
||||
id = Column(String(64), primary_key=True, comment="主键ID(UUID)")
|
||||
customer_id = Column(String(64), nullable=False, comment="客户ID")
|
||||
company_name = Column(String(200), nullable=False, comment="单位名称")
|
||||
tax_no = Column(String(50), nullable=True, comment="税号")
|
||||
company_address = Column(String(500), nullable=True, comment="单位地址")
|
||||
legal_representative = Column(String(100), nullable=True, comment="法定代表人")
|
||||
agent = Column(String(100), nullable=True, comment="代理人")
|
||||
@@ -881,7 +868,7 @@ class CrmClue(Base):
|
||||
position = Column(String(50), nullable=True, comment="职位")
|
||||
source = Column(String(20), nullable=False, comment="线索来源")
|
||||
level = Column(String(10), nullable=True, default="unrated", comment="线索等级(A/B/C/unrated)")
|
||||
industry = Column(String(50), nullable=True, comment="所属行业")
|
||||
industry = Column(String(50), nullable=True, comment="所属行业(字典 crm_customer_industry)")
|
||||
park_area = Column(String(100), nullable=True, comment="所在园区")
|
||||
province = Column(String(50), nullable=True, comment="省")
|
||||
city = Column(String(50), nullable=True, comment="市")
|
||||
|
||||
@@ -10,7 +10,10 @@ class ContactListBody(BaseModel):
|
||||
|
||||
page: int = Field(default=1, ge=1, description="页码")
|
||||
pageSize: int = Field(default=10, ge=1, le=100, description="每页条数")
|
||||
keyword: Optional[str] = Field(default=None, description="搜索关键词(姓名/手机号)")
|
||||
keyword: Optional[str] = Field(default=None, description="搜索关键词(姓名/手机号/邮箱/职位 OR)")
|
||||
contact_name: Optional[str] = Field(default=None, alias="contactName", description="联系人姓名(模糊)")
|
||||
mobile: Optional[str] = Field(default=None, description="手机号(模糊)")
|
||||
position: Optional[str] = Field(default=None, description="职位(模糊)")
|
||||
customer_id: Optional[str] = Field(default=None, alias="customerId", description="客户ID")
|
||||
is_key: Optional[int] = Field(default=None, alias="isKey", description="是否关键决策人(0/1)")
|
||||
is_primary: Optional[int] = Field(default=None, alias="isPrimary", description="是否主要联系人(0/1)")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from decimal import Decimal
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
|
||||
from pydantic import AliasChoices, BaseModel, ConfigDict, Field, model_validator
|
||||
|
||||
|
||||
# ── 客户列表 ──────────────────────────────────────────────────
|
||||
@@ -92,17 +92,6 @@ class CustomerCreateBody(BaseModel):
|
||||
next_time: Optional[str] = Field(default=None, alias="nextTime", description="下次联系时间")
|
||||
remark: Optional[str] = Field(default=None, description="备注")
|
||||
owner_user_id: Optional[str] = Field(default=None, alias="ownerUserId", description="负责人ID")
|
||||
# 证件信息
|
||||
cert_type: Optional[str] = Field(default=None, alias="certType", description="证件类型")
|
||||
cert_no: Optional[str] = Field(default=None, alias="certNo", description="证件号码")
|
||||
cert_positive_img: Optional[str] = Field(default=None, alias="certPositiveImg", description="证件正面照URL")
|
||||
cert_negative_img: Optional[str] = Field(default=None, alias="certNegativeImg", description="证件反面照URL")
|
||||
# 企业信息
|
||||
social_credit_code: Optional[str] = Field(default=None, alias="socialCreditCode", description="社会信用代码")
|
||||
legal_person: Optional[str] = Field(default=None, alias="legalPerson", description="法人")
|
||||
registered_capital: Optional[str] = Field(default=None, alias="registeredCapital", description="注册资本")
|
||||
business_scope: Optional[str] = Field(default=None, alias="businessScope", description="经营范围")
|
||||
registered_address: Optional[str] = Field(default=None, alias="registeredAddress", description="注册地址")
|
||||
business_license_img: Optional[str] = Field(
|
||||
default=None,
|
||||
validation_alias=AliasChoices("businessLicenseImg", "businessLicenseImages"),
|
||||
@@ -115,13 +104,29 @@ class CustomerCreateBody(BaseModel):
|
||||
other_cert_images: Optional[str] = Field(
|
||||
default=None, alias="otherCertImages", description="其他证件图片URL"
|
||||
)
|
||||
# 开票信息
|
||||
invoice_title: Optional[str] = Field(default=None, alias="invoiceTitle", description="开票抬头")
|
||||
tax_no: Optional[str] = Field(default=None, alias="taxNo", description="税号")
|
||||
invoice_bank: Optional[str] = Field(default=None, alias="invoiceBank", description="开户行")
|
||||
invoice_account: Optional[str] = Field(default=None, alias="invoiceAccount", description="银行账号")
|
||||
invoice_address: Optional[str] = Field(default=None, alias="invoiceAddress", description="开票地址")
|
||||
invoice_phone: Optional[str] = Field(default=None, alias="invoicePhone", description="开票电话")
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def _forbid_legacy_invoice_fields(cls, data):
|
||||
if not isinstance(data, dict):
|
||||
return data
|
||||
legacy_keys = {
|
||||
"invoiceTitle",
|
||||
"taxNo",
|
||||
"invoiceBank",
|
||||
"invoiceAccount",
|
||||
"invoiceAddress",
|
||||
"invoicePhone",
|
||||
"invoice_title",
|
||||
"tax_no",
|
||||
"invoice_bank",
|
||||
"invoice_account",
|
||||
"invoice_address",
|
||||
"invoice_phone",
|
||||
}
|
||||
if any(k in data for k in legacy_keys):
|
||||
raise ValueError("客户开票信息已收敛到“开票信息”模块,请通过 /invoice-info/* 维护。")
|
||||
return data
|
||||
|
||||
|
||||
# ── 客户更新 ──────────────────────────────────────────────────
|
||||
@@ -151,17 +156,6 @@ class CustomerUpdateBody(BaseModel):
|
||||
next_time: Optional[str] = Field(default=None, alias="nextTime", description="下次联系时间")
|
||||
remark: Optional[str] = Field(default=None, description="备注")
|
||||
owner_user_id: Optional[str] = Field(default=None, alias="ownerUserId", description="负责人ID")
|
||||
# 证件信息
|
||||
cert_type: Optional[str] = Field(default=None, alias="certType", description="证件类型")
|
||||
cert_no: Optional[str] = Field(default=None, alias="certNo", description="证件号码")
|
||||
cert_positive_img: Optional[str] = Field(default=None, alias="certPositiveImg", description="证件正面照URL")
|
||||
cert_negative_img: Optional[str] = Field(default=None, alias="certNegativeImg", description="证件反面照URL")
|
||||
# 企业信息
|
||||
social_credit_code: Optional[str] = Field(default=None, alias="socialCreditCode", description="社会信用代码")
|
||||
legal_person: Optional[str] = Field(default=None, alias="legalPerson", description="法人")
|
||||
registered_capital: Optional[str] = Field(default=None, alias="registeredCapital", description="注册资本")
|
||||
business_scope: Optional[str] = Field(default=None, alias="businessScope", description="经营范围")
|
||||
registered_address: Optional[str] = Field(default=None, alias="registeredAddress", description="注册地址")
|
||||
business_license_img: Optional[str] = Field(
|
||||
default=None,
|
||||
validation_alias=AliasChoices("businessLicenseImg", "businessLicenseImages"),
|
||||
@@ -174,13 +168,29 @@ class CustomerUpdateBody(BaseModel):
|
||||
other_cert_images: Optional[str] = Field(
|
||||
default=None, alias="otherCertImages", description="其他证件图片URL"
|
||||
)
|
||||
# 开票信息
|
||||
invoice_title: Optional[str] = Field(default=None, alias="invoiceTitle", description="开票抬头")
|
||||
tax_no: Optional[str] = Field(default=None, alias="taxNo", description="税号")
|
||||
invoice_bank: Optional[str] = Field(default=None, alias="invoiceBank", description="开户行")
|
||||
invoice_account: Optional[str] = Field(default=None, alias="invoiceAccount", description="银行账号")
|
||||
invoice_address: Optional[str] = Field(default=None, alias="invoiceAddress", description="开票地址")
|
||||
invoice_phone: Optional[str] = Field(default=None, alias="invoicePhone", description="开票电话")
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def _forbid_legacy_invoice_fields(cls, data):
|
||||
if not isinstance(data, dict):
|
||||
return data
|
||||
legacy_keys = {
|
||||
"invoiceTitle",
|
||||
"taxNo",
|
||||
"invoiceBank",
|
||||
"invoiceAccount",
|
||||
"invoiceAddress",
|
||||
"invoicePhone",
|
||||
"invoice_title",
|
||||
"tax_no",
|
||||
"invoice_bank",
|
||||
"invoice_account",
|
||||
"invoice_address",
|
||||
"invoice_phone",
|
||||
}
|
||||
if any(k in data for k in legacy_keys):
|
||||
raise ValueError("客户开票信息已收敛到“开票信息”模块,请通过 /invoice-info/* 维护。")
|
||||
return data
|
||||
|
||||
|
||||
# ── 客户删除 ──────────────────────────────────────────────────
|
||||
|
||||
@@ -16,6 +16,7 @@ class InvoiceInfoCreateBody(BaseModel):
|
||||
|
||||
customer_id: str = Field(..., alias="customerId", description="客户ID")
|
||||
company_name: str = Field(..., alias="companyName", description="单位名称")
|
||||
tax_no: Optional[str] = Field(default=None, alias="taxNo", description="税号")
|
||||
company_address: Optional[str] = Field(default=None, alias="companyAddress", description="单位地址")
|
||||
legal_representative: Optional[str] = Field(default=None, alias="legalRepresentative", description="法定代表人")
|
||||
agent: Optional[str] = Field(default=None, alias="agent", description="代理人")
|
||||
@@ -32,6 +33,7 @@ class InvoiceInfoUpdateBody(BaseModel):
|
||||
id: str = Field(..., description="开票信息ID")
|
||||
customer_id: Optional[str] = Field(default=None, alias="customerId", description="客户ID")
|
||||
company_name: Optional[str] = Field(default=None, alias="companyName", description="单位名称")
|
||||
tax_no: Optional[str] = Field(default=None, alias="taxNo", description="税号")
|
||||
company_address: Optional[str] = Field(default=None, alias="companyAddress", description="单位地址")
|
||||
legal_representative: Optional[str] = Field(default=None, alias="legalRepresentative", description="法定代表人")
|
||||
agent: Optional[str] = Field(default=None, alias="agent", description="代理人")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from decimal import Decimal
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
# ── 产品分类 Schemas ──────────────────────────────────────────
|
||||
@@ -77,11 +77,21 @@ class ProductCreateBody(BaseModel):
|
||||
category_name: Optional[str] = Field(default=None, alias="categoryName", description="分类名称")
|
||||
model: Optional[str] = Field(default=None, description="规格型号")
|
||||
unit: str = Field(default="件", description="单位")
|
||||
barcode: Optional[str] = Field(default=None, description="条码(不传则自动生成)")
|
||||
price: Decimal = Field(default=Decimal("0.00"), description="标准单价")
|
||||
cost_price: Optional[Decimal] = Field(default=None, alias="costPrice", description="成本价")
|
||||
cost_price: Optional[Decimal] = Field(
|
||||
default=None,
|
||||
validation_alias=AliasChoices("costPrice", "cost"),
|
||||
serialization_alias="costPrice",
|
||||
description="成本价",
|
||||
)
|
||||
stock: int = Field(default=0, description="库存数量")
|
||||
low_stock: int = Field(default=10, alias="lowStock", description="库存预警值")
|
||||
tax_rate: Decimal = Field(default=Decimal("13.00"), alias="taxRate", description="税率(%)")
|
||||
status: str = Field(default="on", description="状态 on=上架 off=下架")
|
||||
description: Optional[str] = Field(default=None, description="产品描述")
|
||||
package_spec: Optional[str] = Field(default=None, alias="packageSpec", description="包装规格")
|
||||
images: Optional[str] = Field(default=None, description="产品图片(逗号分隔 URL)")
|
||||
sale_count: int = Field(default=0, alias="saleCount", description="销售次数")
|
||||
order_num: Optional[int] = Field(default=None, alias="orderNum", description="排序号")
|
||||
remark: Optional[str] = Field(default=None, description="备注")
|
||||
|
||||
@@ -98,11 +108,21 @@ class ProductUpdateBody(BaseModel):
|
||||
category_name: Optional[str] = Field(default=None, alias="categoryName", description="分类名称")
|
||||
model: Optional[str] = Field(default=None, description="规格型号")
|
||||
unit: Optional[str] = Field(default=None, description="单位")
|
||||
barcode: Optional[str] = Field(default=None, description="条码")
|
||||
price: Optional[Decimal] = Field(default=None, description="标准单价")
|
||||
cost_price: Optional[Decimal] = Field(default=None, alias="costPrice", description="成本价")
|
||||
cost_price: Optional[Decimal] = Field(
|
||||
default=None,
|
||||
validation_alias=AliasChoices("costPrice", "cost"),
|
||||
serialization_alias="costPrice",
|
||||
description="成本价",
|
||||
)
|
||||
stock: Optional[int] = Field(default=None, description="库存数量")
|
||||
low_stock: Optional[int] = Field(default=None, alias="lowStock", description="库存预警值")
|
||||
tax_rate: Optional[Decimal] = Field(default=None, alias="taxRate", description="税率(%)")
|
||||
status: Optional[str] = Field(default=None, description="状态")
|
||||
description: Optional[str] = Field(default=None, description="产品描述")
|
||||
package_spec: Optional[str] = Field(default=None, alias="packageSpec", description="包装规格")
|
||||
images: Optional[str] = Field(default=None, description="产品图片(逗号分隔 URL)")
|
||||
sale_count: Optional[int] = Field(default=None, alias="saleCount", description="销售次数")
|
||||
order_num: Optional[int] = Field(default=None, alias="orderNum", description="排序号")
|
||||
remark: Optional[str] = Field(default=None, description="备注")
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ class QuoteListBody(BaseModel):
|
||||
beginTime: Optional[str] = None
|
||||
endTime: Optional[str] = None
|
||||
approvedByUserId: Optional[str] = None
|
||||
pendingApprovalUserId: Optional[str] = None
|
||||
|
||||
|
||||
class QuoteDetailBody(BaseModel):
|
||||
|
||||
@@ -20,7 +20,7 @@ CLUE_EXPORT_COLUMNS = (
|
||||
ExportColumn("线索来源", "source", dict_type="crm_clue_source"),
|
||||
ExportColumn("线索等级", "level", dict_type="crm_clue_level"),
|
||||
ExportColumn("线索状态", "status", dict_type="crm_clue_status"),
|
||||
ExportColumn("所属行业", "industry", dict_type="crm_industry"),
|
||||
ExportColumn("所属行业", "industry", dict_type="crm_customer_industry"),
|
||||
ExportColumn("所在园区", "parkArea", dict_type="crm_customer_park"),
|
||||
ExportColumn("负责人", "ownerUserName"),
|
||||
ExportColumn("跟进次数", "followCount"),
|
||||
@@ -57,7 +57,6 @@ PRODUCT_EXPORT_COLUMNS = (
|
||||
ExportColumn("标准单价", "price"),
|
||||
ExportColumn("成本价", "costPrice"),
|
||||
ExportColumn("状态", "status", dict_type="crm_product_status"),
|
||||
ExportColumn("包装规格", "packageSpec"),
|
||||
ExportColumn("备注", "remark"),
|
||||
)
|
||||
|
||||
|
||||
@@ -90,5 +90,19 @@
|
||||
"88": "Community 88",
|
||||
"89": "Community 89",
|
||||
"90": "Community 90",
|
||||
"91": "Community 91"
|
||||
"91": "Community 91",
|
||||
"92": "Community 92",
|
||||
"93": "Community 93",
|
||||
"94": "Community 94",
|
||||
"95": "Community 95",
|
||||
"96": "Community 96",
|
||||
"97": "Community 97",
|
||||
"98": "Community 98",
|
||||
"99": "Community 99",
|
||||
"100": "Community 100",
|
||||
"101": "Community 101",
|
||||
"102": "Community 102",
|
||||
"103": "Community 103",
|
||||
"109": "Community 109",
|
||||
"113": "Community 113"
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
# Graph Report - backend (2026-06-01)
|
||||
# Graph Report - backend (2026-06-06)
|
||||
|
||||
## Corpus Check
|
||||
- 121 files · ~92,408 words
|
||||
- 122 files · ~93,527 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 2445 nodes · 18243 edges · 92 communities (86 shown, 6 thin omitted)
|
||||
- Extraction: 45% EXTRACTED · 55% INFERRED · 0% AMBIGUOUS · INFERRED: 10057 edges (avg confidence: 0.51)
|
||||
- 2643 nodes · 18676 edges · 106 communities (103 shown, 3 thin omitted)
|
||||
- Extraction: 45% EXTRACTED · 55% INFERRED · 0% AMBIGUOUS · INFERRED: 10230 edges (avg confidence: 0.51)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `9b885814`
|
||||
- Built from commit: `dacfdc9f`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@@ -100,64 +100,78 @@
|
||||
- [[_COMMUNITY_Community 89|Community 89]]
|
||||
- [[_COMMUNITY_Community 90|Community 90]]
|
||||
- [[_COMMUNITY_Community 91|Community 91]]
|
||||
- [[_COMMUNITY_Community 92|Community 92]]
|
||||
- [[_COMMUNITY_Community 93|Community 93]]
|
||||
- [[_COMMUNITY_Community 94|Community 94]]
|
||||
- [[_COMMUNITY_Community 95|Community 95]]
|
||||
- [[_COMMUNITY_Community 96|Community 96]]
|
||||
- [[_COMMUNITY_Community 97|Community 97]]
|
||||
- [[_COMMUNITY_Community 98|Community 98]]
|
||||
- [[_COMMUNITY_Community 99|Community 99]]
|
||||
- [[_COMMUNITY_Community 100|Community 100]]
|
||||
- [[_COMMUNITY_Community 101|Community 101]]
|
||||
- [[_COMMUNITY_Community 102|Community 102]]
|
||||
- [[_COMMUNITY_Community 103|Community 103]]
|
||||
- [[_COMMUNITY_Community 109|Community 109]]
|
||||
- [[_COMMUNITY_Community 113|Community 113]]
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `Session` - 254 edges
|
||||
1. `Session` - 256 edges
|
||||
2. `success_response()` - 246 edges
|
||||
3. `Session` - 243 edges
|
||||
4. `BaseModel` - 242 edges
|
||||
5. `error_response()` - 234 edges
|
||||
6. `SysUser` - 180 edges
|
||||
7. `get_tenant_no()` - 139 edges
|
||||
7. `get_tenant_no()` - 140 edges
|
||||
8. `int` - 111 edges
|
||||
9. `CustomerListBody` - 107 edges
|
||||
10. `CustomerListBody` - 107 edges
|
||||
9. `CustomerListBody` - 108 edges
|
||||
10. `CustomerCreateBody` - 108 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `bool` --uses--> `SysUser` [INFERRED]
|
||||
app/crud/sample_code.py → app/models/models.py
|
||||
- `date` --uses--> `CrmContact` [INFERRED]
|
||||
app/crud/crm/contact.py → app/models/crm_models.py
|
||||
- `bool` --uses--> `CrmInvoiceInfo` [INFERRED]
|
||||
app/crud/crm/invoice_info.py → app/models/crm_models.py
|
||||
- `pool_recovery_job()` --calls--> `execute_pool_rules()` [INFERRED]
|
||||
app/tasks/customer_pool.py → app/crud/crm/pool_rule.py
|
||||
- `Session` --uses--> `CrmCustomer` [INFERRED]
|
||||
app/tasks/customer_pool.py → app/models/crm_models.py
|
||||
- `CrmCustomer` --uses--> `CrmCustomer` [INFERRED]
|
||||
app/tasks/customer_pool.py → app/models/crm_models.py
|
||||
- `str` --uses--> `CrmCustomer` [INFERRED]
|
||||
app/tasks/customer_pool.py → app/models/crm_models.py
|
||||
|
||||
## Communities (92 total, 6 thin omitted)
|
||||
## Communities (106 total, 3 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.11
|
||||
Nodes (52): pool_rule_delete(), Any, int, Session, str, Any, bool, CRM 公海池规则 CRUD + 规则执行逻辑 (+44 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (42): Any, int, Session, str, Any, bool, CRM 公海池规则 CRUD + 规则执行逻辑, int (+34 more)
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.09
|
||||
Nodes (81): Any, ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, StartInstanceBody, Any, Any, bool (+73 more)
|
||||
Nodes (84): Any, ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, 审批意见:前端传 commentText,兼容 comment。, StartInstanceBody, TaskActionBody, Any (+76 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.14
|
||||
Nodes (23): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), _error_json(), lifespan(), _mask_secret(), Exception, int, Request (+15 more)
|
||||
Cohesion: 0.22
|
||||
Nodes (11): Any, bool, int, Session, str, bool, camel_to_snake(), CRUDBase (+3 more)
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): Any, bool, int, str, get_wechat_pay_client(), get_wechat_pay_v2(), 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.html, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total_amo (+7 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.14
|
||||
Nodes (42): Any, bool, CRM 产品模块 CRUD(产品分类 + 产品 + 附件), int, Session, str, category_code_exists(), _category_row_to_dict() (+34 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (29): bool, CRM 产品模块 CRUD(产品分类 + 产品 + 附件), Session, str, barcode_exists(), category_code_exists(), _category_row_to_dict(), create_category() (+21 more)
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.05
|
||||
Nodes (49): Any, bool, bytes, int, str, Any, str, Exception (+41 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (33): Any, bool, bytes, int, str, Exception, bool, bytes (+25 more)
|
||||
|
||||
### Community 6 - "Community 6"
|
||||
Cohesion: 0.09
|
||||
Nodes (95): attachment_download_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post(), create_role_management() (+87 more)
|
||||
Nodes (94): attachment_download_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post(), create_role_management() (+86 more)
|
||||
|
||||
### Community 7 - "Community 7"
|
||||
Cohesion: 0.09
|
||||
Nodes (47): Any, CRM 报价单 CRUD — 对照 CrmQuoteServiceImpl.java(P2 全量), datetime, Decimal, _build_quote_filters(), calculate_quote_amount(), create_quote(), _decimal_value() (+39 more)
|
||||
Cohesion: 0.22
|
||||
Nodes (9): create_new_version(), Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id (+1 more)
|
||||
|
||||
### Community 8 - "Community 8"
|
||||
Cohesion: 0.15
|
||||
@@ -169,19 +183,19 @@ Nodes (15): Any, int, Session, str, BizLeaveRequest, create_leave(), get_leave()
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.09
|
||||
Nodes (55): Any, bool, datetime, int, Session, str, _advance_contract_after_approval(), approve_contract() (+47 more)
|
||||
Nodes (56): register_contract_sub_routes(), Any, bool, datetime, int, Session, str, _advance_contract_after_approval() (+48 more)
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.04
|
||||
Nodes (191): category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate(), clue_convert() (+183 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (168): _apply_default_invoice_info_to_customers(), category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate() (+160 more)
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.12
|
||||
Nodes (34): BaseModel, AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest (+26 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (68): str, CRM 客户管理 Pydantic Schemas, BaseModel, PageResult, ResponseModel, ContactByCustomerBody, ContactDetailBody, ContactSetPrimaryBody (+60 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.37
|
||||
Nodes (210): bool, str, UploadFile, CRM 线索管理 Pydantic Schemas, CRM 商机管理 Pydantic Schemas, CRM 客户公海池规则 Pydantic Schemas, CRM 产品模块 Pydantic Schemas, CRM 供方信息 Pydantic Schemas (+202 more)
|
||||
Cohesion: 0.36
|
||||
Nodes (213): Any, bool, str, UploadFile, CRM 线索管理 Pydantic Schemas, CRM 商机管理 Pydantic Schemas, CRM 客户公海池规则 Pydantic Schemas, CRM 产品模块 Pydantic Schemas (+205 more)
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.18
|
||||
@@ -204,8 +218,8 @@ Cohesion: 0.17
|
||||
Nodes (34): Any, bool, int, Session, str, SysUser, create_user(), get_user() (+26 more)
|
||||
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.22
|
||||
Nodes (11): Any, bool, int, Session, str, bool, camel_to_snake(), CRUDBase (+3 more)
|
||||
Cohesion: 0.35
|
||||
Nodes (9): check_customer_protect_time(), _execute_single_rule(), _get_all_tenant_nos(), pool_recovery_job(), 公海池自动回收任务(由 APScheduler 调度) 遍历所有租户的启用规则,执行自动回收。, 每天凌晨1点:检查保护期到期客户,跟进次数不足则退回公海, 每天早上9点:保护期到期提醒(3天内到期且跟进不足), remind_customer_recycle() (+1 more)
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.37
|
||||
@@ -216,12 +230,12 @@ Cohesion: 0.34
|
||||
Nodes (16): Any, int, Session, str, _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept() (+8 more)
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.23
|
||||
Nodes (21): Any, bool, CRM 供方信息 CRUD — 对照 CrmSupplierInfoServiceImpl.java, int, Session, str, _apply_list_filters(), create_supplier_info() (+13 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (48): 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export (+40 more)
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.33
|
||||
Nodes (10): Any, int, Session, str, list_ethnics(), 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局) (+2 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (23): download_contract_pdf(), export_contracts(), get_contract_detail(), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相) (+15 more)
|
||||
|
||||
### Community 24 - "Community 24"
|
||||
Cohesion: 0.29
|
||||
@@ -236,8 +250,8 @@ Cohesion: 0.27
|
||||
Nodes (11): Any, bool, str, decrypt_login_payload(), ensure_initialized(), extract_login_credentials(), get_public_pem(), 登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。 (+3 more)
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.16
|
||||
Nodes (30): Any, bool, int, Session, str, Any, Session, str (+22 more)
|
||||
Cohesion: 0.26
|
||||
Nodes (20): Any, bool, int, Session, str, create_follow(), _enrich_follow_dict(), _follow_row_to_dict() (+12 more)
|
||||
|
||||
### Community 28 - "Community 28"
|
||||
Cohesion: 0.26
|
||||
@@ -253,15 +267,15 @@ Nodes (3): BaseSettings, Config, Settings
|
||||
|
||||
### Community 36 - "Community 36"
|
||||
Cohesion: 0.17
|
||||
Nodes (32): int, Any, bool, int, Session, str, Any, bool (+24 more)
|
||||
Nodes (32): Any, int, Session, str, Any, bool, int, Session (+24 more)
|
||||
|
||||
### Community 37 - "Community 37"
|
||||
Cohesion: 0.20
|
||||
Nodes (10): invoice_info_list(), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价) (+2 more)
|
||||
Cohesion: 0.19
|
||||
Nodes (17): Any, int, str, BusinessException, InvalidStatusTransitionException, log_api_request(), log_delivery_operation(), log_operation() (+9 more)
|
||||
|
||||
### Community 38 - "Community 38"
|
||||
Cohesion: 0.11
|
||||
Nodes (41): register_quote_routes(), bool, int, Session, str, accept_quote(), create_new_version(), _fill_contract_linked_count() (+33 more)
|
||||
Cohesion: 0.40
|
||||
Nodes (4): str, Config, format_api_error_message(), 将 HTTP/SQLAlchemy 等异常转为可展示的错误文案(避免 str([]) 空列表)。
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.20
|
||||
@@ -272,60 +286,60 @@ Cohesion: 0.22
|
||||
Nodes (33): Any, bool, CRM 线索 CRUD(线索主表 + 转化/分配/无效/等级操作), date, datetime, int, Session, str (+25 more)
|
||||
|
||||
### Community 41 - "Community 41"
|
||||
Cohesion: 0.19
|
||||
Nodes (18): str, Any, bool, Session, str, CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _yes_no(), _build_workbook() (+10 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (19): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll (+11 more)
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 0.34
|
||||
Nodes (16): Any, bool, int, Session, str, create_dict_type(), dict_type_code_exists(), get_dict_type() (+8 more)
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.22
|
||||
Nodes (17): bool, int, Redis, Request, str, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client() (+9 more)
|
||||
Cohesion: 0.23
|
||||
Nodes (16): bool, int, Redis, Request, str, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client() (+8 more)
|
||||
|
||||
### Community 44 - "Community 44"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致), Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致), web_login_rsa_public_key()
|
||||
Cohesion: 0.16
|
||||
Nodes (21): _error_json(), lifespan(), _mask_secret(), Exception, int, Request, str, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin (+13 more)
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 0.08
|
||||
Nodes (57): CRM 合同 CRUD — 对照 CrmContractServiceImpl.java(列表/详情 P1), Decimal, _apply_contract_entity_fields(), _apply_contract_scalar_fields(), _build_contract_filters(), _calc_amount_with_tax(), _contract_period_key(), create_contract() (+49 more)
|
||||
Nodes (76): register_contract_routes(), bool, CRM 合同 CRUD — 对照 CrmContractServiceImpl.java(列表/详情 P1), Session, str, batch_assign_owner(), batch_submit_approval(), _build_customer_address() (+68 more)
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
Cohesion: 0.10
|
||||
Nodes (62): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), bool, Session, str, batch_assign_owner(), batch_submit_approval(), batch_submit_contract_approval() (+54 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (23): Any, bool, bytes, int, Request, str, bool, int (+15 more)
|
||||
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 0.18
|
||||
Nodes (19): datetime, int, str, datetime, int, Session, str, BizNoKind (+11 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (26): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), approve_task(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list() (+18 more)
|
||||
|
||||
### Community 48 - "Community 48"
|
||||
Cohesion: 0.08
|
||||
Nodes (42): CRM 合同 Pydantic Schemas — 对照 CrmContractBo / CrmContractVo, ContractApprovalActionBody, ContractApprovalApproveBody, ContractApprovalByContractBody, ContractApprovalExportBody, ContractApprovalListBody, ContractApprovalListQuery, ContractApprovalPageListBody (+34 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (51): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, CRM 合同子模块路由 — 变更/模板/审批独立页, CRM 合同 Pydantic Schemas — 对照 CrmContractBo / CrmContractVo, ContractApprovalActionBody, ContractApprovalApproveBody, ContractApprovalByContractBody, ContractApprovalExportBody, ContractApprovalListBody (+43 more)
|
||||
|
||||
### Community 49 - "Community 49"
|
||||
Cohesion: 0.19
|
||||
Nodes (20): operlog_detail(), operlog_list(), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), Session, Any, int, Session, str (+12 more)
|
||||
Cohesion: 0.44
|
||||
Nodes (11): Any, Session, str, get_follow_statistics(), get_industry_statistics(), get_level_statistics(), get_overview_statistics(), get_owner_statistics() (+3 more)
|
||||
|
||||
### Community 50 - "Community 50"
|
||||
Cohesion: 0.32
|
||||
Nodes (17): CrmContract, Query, CrmContract, CrmContractProductPriceTier, date, datetime, Query, contract_row_to_dict() (+9 more)
|
||||
Cohesion: 0.19
|
||||
Nodes (20): operlog_detail(), operlog_list(), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), Session, Any, int, Session, str (+12 more)
|
||||
|
||||
### Community 51 - "Community 51"
|
||||
Cohesion: 0.16
|
||||
Nodes (13): float, int, str, 微信消息通知服务 支持微信小程序模板消息推送 使用方式: 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 (+5 more)
|
||||
|
||||
### Community 52 - "Community 52"
|
||||
Cohesion: 0.29
|
||||
Nodes (16): API 路由包 — 山峡化工生产一体化门户, create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), submit_leave() (+8 more)
|
||||
Cohesion: 0.37
|
||||
Nodes (13): create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), submit_leave(), update_leave() (+5 more)
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 0.10
|
||||
Nodes (35): get_current_user_profile(), get_web_auth_menu_codes(), 获取当前用户信息(与 sys_user 字段对应)。, 获取当前用户信息(与 sys_user 字段对应)。, 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。, 获取当前用户菜单权限标识(sys_menu.perms,经角色继承)。, Request, Any (+27 more)
|
||||
Cohesion: 0.29
|
||||
Nodes (7): batch_submit_contract_approval(), Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.22
|
||||
Nodes (13): _avatar_url_field(), _build_user_info_payload(), _jwt_user_payload(), public_quote_share(), 公开分享查看报价单 — Java: GET /share/{shareCode}(无 JWT), 与 web-admin `userInfo` 字段约定一致。, 与 web-admin `userInfo` 字段约定一致。, Web 端登录:账号为 sys_user.user_no,密码为 sys_user.password(bcrypt)。 (+5 more)
|
||||
Cohesion: 0.34
|
||||
Nodes (21): Any, Decimal, int, Session, str, batch_add_opportunity_products(), _calc_subtotal(), create_opportunity_product() (+13 more)
|
||||
|
||||
### Community 55 - "Community 55"
|
||||
Cohesion: 0.34
|
||||
@@ -336,12 +350,12 @@ Cohesion: 0.18
|
||||
Nodes (10): Any, Request, str, str, parse_admin_request_json(), 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `{, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, 统一解析接口请求载荷(明文 / 密文信封)。 (+2 more)
|
||||
|
||||
### Community 57 - "Community 57"
|
||||
Cohesion: 0.19
|
||||
Nodes (28): logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, refresh_token(), bool, Redis, Request (+20 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (26): _avatar_url_field(), _build_user_info_payload(), get_current_user_profile(), get_web_auth_menu_codes(), _jwt_user_payload(), logout(), public_quote_share(), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。 (+18 more)
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 0.34
|
||||
Nodes (21): Any, Decimal, int, Session, str, batch_add_opportunity_products(), _calc_subtotal(), create_opportunity_product() (+13 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (18): product_delete(), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids) (+10 more)
|
||||
|
||||
### Community 60 - "Community 60"
|
||||
Cohesion: 0.19
|
||||
@@ -349,118 +363,186 @@ Nodes (32): Any, bool, CrmContractProductPriceTier, date, Decimal, int, Session,
|
||||
|
||||
### Community 61 - "Community 61"
|
||||
Cohesion: 0.17
|
||||
Nodes (30): CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), Any, int, 运营端角色守卫:admin / super_admin 可访问。, require_admin_or_super_admin(), _change_row_to_dict(), ContractApprovalRefreshNamesBody (+22 more)
|
||||
Nodes (30): register_quote_routes(), bool, int, Session, str, accept_quote(), generate_pdf(), generate_share() (+22 more)
|
||||
|
||||
### Community 62 - "Community 62"
|
||||
Cohesion: 0.10
|
||||
Nodes (37): Session, str, Any, bool, int, Session, str, Session (+29 more)
|
||||
Cohesion: 0.35
|
||||
Nodes (17): Any, bool, int, Session, str, _build_tree(), _cascade_soft_delete(), create_menu() (+9 more)
|
||||
|
||||
### Community 63 - "Community 63"
|
||||
Cohesion: 0.19
|
||||
Nodes (27): Any, bool, int, Session, str, date, Query, approve_quote() (+19 more)
|
||||
Cohesion: 0.17
|
||||
Nodes (29): Any, bool, int, Session, str, Query, approve_quote(), can_user_approve() (+21 more)
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 0.43
|
||||
Nodes (14): Any, bool, Session, str, _clear_default_for_customer(), create_invoice_info(), get_invoice_info(), list_invoice_info_by_customer() (+6 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (16): invoice_info_list(), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价) (+8 more)
|
||||
|
||||
### Community 68 - "Community 68"
|
||||
Cohesion: 0.33
|
||||
Nodes (14): Any, int, Session, str, create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options() (+6 more)
|
||||
Cohesion: 0.27
|
||||
Nodes (18): Any, bool, int, Session, str, create_clue_follow(), delete_clue_follow(), get_clue_follow() (+10 more)
|
||||
|
||||
### Community 69 - "Community 69"
|
||||
Cohesion: 0.19
|
||||
Nodes (45): Any, CRM 商机 CRUD(主表 + 阶段/赢输单/统计/看板/漏斗), date, datetime, Decimal, int, Session, str (+37 more)
|
||||
|
||||
### Community 70 - "Community 70"
|
||||
Cohesion: 0.14
|
||||
Nodes (14): product_delete(), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids), 删除产品(支持单条 body.id 和批量 body.ids) (+6 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (28): 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), refresh_token(), bool, Redis, Session, str, create_access_token(), create_refresh_token() (+20 more)
|
||||
|
||||
### Community 71 - "Community 71"
|
||||
Cohesion: 0.27
|
||||
Nodes (18): Any, bool, int, Session, str, create_clue_follow(), delete_clue_follow(), get_clue_follow() (+10 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (17): Any, int, _build_category_tree(), _collect_category_with_ancestors(), list_category_tree(), list_products(), _product_row_to_dict(), 获取产品分类树(嵌套 children,供树形表格/树选择器使用) (+9 more)
|
||||
|
||||
### Community 72 - "Community 72"
|
||||
Cohesion: 0.18
|
||||
Nodes (20): Decimal, str, Any, str, derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。 (+12 more)
|
||||
Cohesion: 0.38
|
||||
Nodes (15): Any, bool, int, Session, str, create_post(), get_post(), list_posts() (+7 more)
|
||||
|
||||
### Community 73 - "Community 73"
|
||||
Cohesion: 0.23
|
||||
Nodes (27): approve_task(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields(), get_designer_data() (+19 more)
|
||||
Cohesion: 0.24
|
||||
Nodes (12): Session, str, iter_user_menu_perm_codes(), _map_role_name_to_web(), Web 管理端登录:基于 V0.3 sys_user / sys_user_role / sys_role 的角色与菜单权限解析, 将 sys_role.role_name 映射为 web-admin 使用的 role 字符串。, 根据用户关联角色解析 Web 端 role(admin / super_admin)。, 根据用户关联角色解析 Web 端 role(admin / super_admin)。 (+4 more)
|
||||
|
||||
### Community 74 - "Community 74"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): bool, str, get_password_hash(), 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password()
|
||||
Cohesion: 0.07
|
||||
Nodes (46): Decimal, _apply_contract_entity_fields(), _apply_contract_scalar_fields(), _build_contract_filters(), _calc_amount_with_tax(), create_contract(), create_from_opportunity(), create_from_quote() (+38 more)
|
||||
|
||||
### Community 75 - "Community 75"
|
||||
Cohesion: 0.27
|
||||
Nodes (15): Any, bool, Session, str, list_share_logs(), _parse_user_agent(), CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, 简易 User-Agent 解析(替代 Hutool UserAgentUtil) (+7 more)
|
||||
Cohesion: 0.16
|
||||
Nodes (21): Any, bool, Session, str, Java: viewByShareCode, Java: viewByShareCode, Java: viewByShareCode, Java: viewByShareCode (+13 more)
|
||||
|
||||
### Community 76 - "Community 76"
|
||||
Cohesion: 0.35
|
||||
Nodes (17): Any, bool, datetime, int, Session, str, create_opportunity_follow(), list_follows_by_opportunity() (+9 more)
|
||||
Cohesion: 0.34
|
||||
Nodes (18): Any, bool, datetime, int, Session, str, create_opportunity_follow(), get_opportunity_follow() (+10 more)
|
||||
|
||||
### Community 78 - "Community 78"
|
||||
Cohesion: 0.33
|
||||
Nodes (11): SysOss, int, Session, str, SysOss, create_oss(), _oss_row_to_dict(), create_oss() (+3 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (42): Any, CRM 报价单 CRUD — 对照 CrmQuoteServiceImpl.java(P2 全量), date, datetime, Decimal, _build_quote_filters(), calculate_quote_amount(), create_quote() (+34 more)
|
||||
|
||||
### Community 79 - "Community 79"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): generate_contract_name(), Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName (+1 more)
|
||||
|
||||
### Community 80 - "Community 80"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): generate_contract_no(), Java: generateContractNo — {供方编码}/X-JT + yyyyMMdd + 3位流水, Java: generateContractNo — {供方编码}/X-JT + yyyyMMdd + 3位流水, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号} (+1 more)
|
||||
|
||||
### Community 81 - "Community 81"
|
||||
Cohesion: 0.60
|
||||
Nodes (10): Any, Session, str, _apply_create_range(), _base_query(), get_clue_level_statistics(), get_clue_overview_statistics(), get_clue_owner_statistics() (+2 more)
|
||||
|
||||
### Community 81 - "Community 81"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, 导出供方列表 — Java: CrmSupplierInfoController.export, supplier_info_export()
|
||||
|
||||
### Community 82 - "Community 82"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): CustomerFollowByCustomerBody, CustomerFollowDetailBody, CRM 客户跟进记录 Pydantic Schemas
|
||||
Cohesion: 0.33
|
||||
Nodes (11): SysOss, int, Session, str, SysOss, create_oss(), _oss_row_to_dict(), create_oss() (+3 more)
|
||||
|
||||
### Community 83 - "Community 83"
|
||||
Cohesion: 0.32
|
||||
Nodes (7): Config, LoginResponse, ResetPasswordRequest, UserBase, UserCreate, UserResponse, UserUpdate
|
||||
Cohesion: 0.18
|
||||
Nodes (31): CrmContract, Query, Any, CrmContract, CrmContractProductPriceTier, date, datetime, int (+23 more)
|
||||
|
||||
### Community 84 - "Community 84"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): CustomerPoolDetailBody, CustomerPoolListBody, PoolCustomerListBody, PoolRecordDetailBody, PoolRecordListBody, CRM 客户公海池记录 Pydantic Schemas
|
||||
Cohesion: 0.33
|
||||
Nodes (6): generate_template_no(), Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}
|
||||
|
||||
### Community 85 - "Community 85"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): CRM 客户管理 Pydantic Schemas, CustomerAssignPoolBody, CustomerCheckDuplicateBody, CustomerDetailBody, CRM 客户管理 CRUD(客户 + 联系人 + 跟进记录)
|
||||
Cohesion: 0.11
|
||||
Nodes (19): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list (+11 more)
|
||||
|
||||
### Community 86 - "Community 86"
|
||||
Cohesion: 0.40
|
||||
Nodes (4): ContactByCustomerBody, ContactDetailBody, ContactSetPrimaryBody, CRM 联系人 Pydantic Schemas
|
||||
Cohesion: 0.20
|
||||
Nodes (10): 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo (+2 more)
|
||||
|
||||
### Community 87 - "Community 87"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): generate_contract_no(), Java: generateContractNo — {供方编码}/X-JT + yyyyMMdd + 3位流水, Java: generateContractNo — {供方编码}/X-JT + yyyyMMdd + 3位流水, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}, Java: generateContractNo — {供方编码}/X-JT{yyyyMMdd}{3位序号}
|
||||
Cohesion: 0.20
|
||||
Nodes (10): 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove (+2 more)
|
||||
|
||||
### Community 88 - "Community 88"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Config, PageResult, ResponseModel
|
||||
Cohesion: 0.33
|
||||
Nodes (10): Any, int, Session, str, list_ethnics(), 民族码表 CRUD(全局 sys_ethnic), _row_to_dict(), 民族码表 sys_ethnic(国标 GB/T 3304,全局) (+2 more)
|
||||
|
||||
### Community 89 - "Community 89"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): Config, LeaveResponse, Pydantic schemas - 请假申请
|
||||
Cohesion: 0.25
|
||||
Nodes (8): generate_product_no(), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001), 生成产品编号(格式:CP + yyyyMMdd + 3位序号,如 CP20260530001)
|
||||
|
||||
### Community 90 - "Community 90"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人) (+1 more)
|
||||
|
||||
### Community 91 - "Community 91"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): generate_barcode(), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001)
|
||||
|
||||
### Community 92 - "Community 92"
|
||||
Cohesion: 0.29
|
||||
Nodes (7): Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, renew_contract()
|
||||
|
||||
### Community 93 - "Community 93"
|
||||
Cohesion: 0.42
|
||||
Nodes (13): Any, bool, Session, str, _clear_default_for_customer(), create_invoice_info(), get_invoice_info(), list_invoice_info_by_customer() (+5 more)
|
||||
|
||||
### Community 94 - "Community 94"
|
||||
Cohesion: 0.17
|
||||
Nodes (21): Decimal, str, Any, str, derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。 (+13 more)
|
||||
|
||||
### Community 95 - "Community 95"
|
||||
Cohesion: 0.13
|
||||
Nodes (15): generate_auto_product_no(), _get_quote_item_field(), Java: generateAutoProductNo — SXWL + 8位随机大写字符, Java: generateAutoProductNo — SXWL + 8位随机大写字符, Java: resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配), Java: resolveProductIdForQuoteItem(CrmProduct 无 tax_rate,跳过税率匹配), Java: generateAutoProductNo — SXWL + 8位随机大写字符, Java: generateAutoProductNo — SXWL + 8位随机大写字符 (+7 more)
|
||||
|
||||
### Community 96 - "Community 96"
|
||||
Cohesion: 0.18
|
||||
Nodes (19): datetime, int, str, datetime, int, Session, str, BizNoKind (+11 more)
|
||||
|
||||
### Community 97 - "Community 97"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview, Java: statisticsOverview (+1 more)
|
||||
|
||||
### Community 98 - "Community 98"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend (+1 more)
|
||||
|
||||
### Community 99 - "Community 99"
|
||||
Cohesion: 0.29
|
||||
Nodes (7): _parse_letter_oss_ids_from_tier(), Java: validateFrameworkContractForSubmitApproval, Java: validateFrameworkContractForSubmitApproval, Java: validateFrameworkContractForSubmitApproval, Java: validateFrameworkContractForSubmitApproval, Java: validateFrameworkContractForSubmitApproval, validate_framework_contract_for_submit_approval()
|
||||
|
||||
### Community 100 - "Community 100"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): bool, str, get_password_hash(), 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password()
|
||||
|
||||
### Community 101 - "Community 101"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): list_roles_for_designer(), 返回角色下拉选项(label=角色名,value=角色ID UUID),供流程设计器审批人选择使用。 与 /roles 不同,此端点返回角色 UUID, 返回角色下拉选项(label=角色名,value=角色ID UUID),供流程设计器审批人选择使用。 与 /roles 不同,此端点返回角色 UUID, 返回角色下拉选项(label=角色名,value=角色ID UUID),供流程设计器审批人选择使用。 与 /roles 不同,此端点返回角色 UUID, 返回角色下拉选项(label=角色名,value=角色ID UUID),供流程设计器审批人选择使用。 与 /roles 不同,此端点返回角色 UUID
|
||||
|
||||
### Community 102 - "Community 102"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus (+1 more)
|
||||
|
||||
### Community 103 - "Community 103"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致), Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致), web_login_rsa_public_key()
|
||||
|
||||
### Community 109 - "Community 109"
|
||||
Cohesion: 0.40
|
||||
Nodes (4): str, 附件上传 bizType 与 MinIO 目录映射(对齐原 CRM oss 上传语义), 优先使用显式 folder;否则按 bizType 映射默认目录。, resolve_upload_folder()
|
||||
|
||||
### Community 113 - "Community 113"
|
||||
Cohesion: 0.18
|
||||
Nodes (10): Session, str, _auto_fill_create_dept_id(), get_db(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID, get_user_menu_codes(), 菜单 code 权限守卫(V0.3:通过 sys_user_role → sys_role_menu → sys_menu.perms), 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。 (+2 more)
|
||||
|
||||
## Knowledge Gaps
|
||||
- **41 isolated node(s):** `bool`, `bool`, `Config`, `bool`, `bool` (+36 more)
|
||||
- **42 isolated node(s):** `bool`, `bool`, `Config`, `bool`, `bool` (+37 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **6 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **3 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 `SysUser` connect `Community 1` to `Community 0`, `Community 6`, `Community 7`, `Community 8`, `Community 10`, `Community 14`, `Community 17`, `Community 18`, `Community 19`, `Community 36`, `Community 38`, `Community 40`, `Community 45`, `Community 46`, `Community 47`, `Community 50`, `Community 53`, `Community 54`, `Community 57`, `Community 61`, `Community 63`, `Community 69`, `Community 73`?**
|
||||
_High betweenness centrality (0.125) - this node is a cross-community bridge._
|
||||
- **Why does `generate_uuid()` connect `Community 0` to `Community 1`, `Community 4`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 14`, `Community 17`, `Community 18`, `Community 21`, `Community 22`, `Community 27`, `Community 28`, `Community 36`, `Community 38`, `Community 39`, `Community 40`, `Community 42`, `Community 45`, `Community 47`, `Community 54`, `Community 55`, `Community 57`, `Community 59`, `Community 60`, `Community 61`, `Community 62`, `Community 63`, `Community 65`, `Community 68`, `Community 69`, `Community 71`, `Community 73`, `Community 75`, `Community 76`, `Community 78`?**
|
||||
_High betweenness centrality (0.090) - this node is a cross-community bridge._
|
||||
- **Why does `error_response()` connect `Community 11` to `Community 0`, `Community 1`, `Community 6`, `Community 16`, `Community 36`, `Community 37`, `Community 38`, `Community 43`, `Community 46`, `Community 49`, `Community 52`, `Community 53`, `Community 54`, `Community 57`, `Community 61`, `Community 70`, `Community 73`, `Community 81`, `Community 88`?**
|
||||
- **Why does `SysUser` connect `Community 1` to `Community 0`, `Community 2`, `Community 5`, `Community 6`, `Community 8`, `Community 10`, `Community 14`, `Community 17`, `Community 18`, `Community 36`, `Community 40`, `Community 45`, `Community 47`, `Community 57`, `Community 61`, `Community 63`, `Community 69`, `Community 70`, `Community 74`, `Community 78`, `Community 83`, `Community 96`?**
|
||||
_High betweenness centrality (0.148) - this node is a cross-community bridge._
|
||||
- **Why does `generate_uuid()` connect `Community 0` to `Community 1`, `Community 4`, `Community 5`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 14`, `Community 17`, `Community 18`, `Community 19`, `Community 21`, `Community 22`, `Community 27`, `Community 28`, `Community 36`, `Community 39`, `Community 40`, `Community 42`, `Community 45`, `Community 54`, `Community 55`, `Community 57`, `Community 60`, `Community 62`, `Community 63`, `Community 68`, `Community 69`, `Community 70`, `Community 72`, `Community 74`, `Community 75`, `Community 76`, `Community 78`, `Community 82`, `Community 83`, `Community 93`, `Community 95`, `Community 96`?**
|
||||
_High betweenness centrality (0.113) - this node is a cross-community bridge._
|
||||
- **Why does `error_response()` connect `Community 11` to `Community 1`, `Community 5`, `Community 6`, `Community 10`, `Community 16`, `Community 22`, `Community 36`, `Community 38`, `Community 41`, `Community 43`, `Community 45`, `Community 47`, `Community 48`, `Community 50`, `Community 52`, `Community 57`, `Community 59`, `Community 61`, `Community 65`, `Community 70`, `Community 85`, `Community 86`, `Community 87`?**
|
||||
_High betweenness centrality (0.088) - this node is a cross-community bridge._
|
||||
- **Are the 28 inferred relationships involving `str` (e.g. with `CRUDBase` and `LeaveCreate`) actually correct?**
|
||||
_`str` has 28 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 99 inferred relationships involving `Session` (e.g. with `ClueAssignBody` and `ClueConvertBody`) actually correct?**
|
||||
_`Session` has 99 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 100 inferred relationships involving `Session` (e.g. with `ClueAssignBody` and `ClueConvertBody`) actually correct?**
|
||||
_`Session` has 100 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 37 inferred relationships involving `success_response()` (e.g. with `category_add()` and `category_delete()`) actually correct?**
|
||||
_`success_response()` has 37 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 28 inferred relationships involving `Session` (e.g. with `CRUDBase` and `LeaveCreate`) actually correct?**
|
||||
|
||||
backend/graphify-out/cache/ast/091c2e81c36a3333f362d78a2930f7efe0d75a9d76abb7babcd2d9066ef22cb0.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L77"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L109"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L192"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L227"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L255"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L286"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L312"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L335"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L378"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L409"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L439"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L470"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L553"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L584"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L615"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L649"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L687"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L712"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L770"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L805"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/09c9ed3e741922bb83fd624533377fafb7a0d2c945b6bf098b4a6656af552b79.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_quote_py", "label": "quote.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L1"}, {"id": "crm_quote_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "crm_quote_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "crm_quote_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "crm_quote_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "crm_quote_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "crm_quote_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "crm_quote_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crm_quote_quote_row_to_dict", "label": "quote_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L155"}, {"id": "crm_quote_build_quote_filters", "label": "_build_quote_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "crm_quote_fill_contract_linked_count", "label": "_fill_contract_linked_count()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L267"}, {"id": "crm_quote_calculate_quote_amount", "label": "calculate_quote_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L289"}, {"id": "crm_quote_resolve_quote_product_ids", "label": "_resolve_quote_product_ids()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L315"}, {"id": "crm_quote_generate_quote_no", "label": "generate_quote_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L336"}, {"id": "crm_quote_generate_quote_title", "label": "generate_quote_title()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L386"}, {"id": "crm_quote_get_supplier_short_name", "label": "_get_supplier_short_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L398"}, {"id": "crm_quote_enrich_contact_fields", "label": "_enrich_contact_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "soLine truncated
|
||||
backend/graphify-out/cache/ast/17ba1437b70857f9826087f24ac1305a74f366b6d0358ccc78948860f55dc35b.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_quote_approval_py", "label": "quote_approval.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L1"}, {"id": "crm_quote_approval_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L16"}, {"id": "crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L16"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L16"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L16"}, {"id": "crm_quote_approval_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L32"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L32"}, {"id": "crm_quote_approval_list_quote_approvals", "label": "list_quote_approvals()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L42"}, {"id": "crm_quote_approval_get_quote_approval", "label": "get_quote_approval()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L63"}, {"id": "crm_quote_approval_create_approval_records", "label": "create_approval_records()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L78"}, {"id": "crm_quote_approval_approve_quote", "label": "approve_quote()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L120"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L120"}, {"id": "crm_quote_approval_withdraw_approval", "label": "withdraw_approval()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L181"}, {"id": "crm_quote_approval_delete_pending_approvals", "label": "delete_pending_approvals()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L212"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L212"}, {"id": "crm_quote_approval_refresh_approver_names", "label": "refresh_approver_names()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L231"}, {"id": "crm_quote_approval_can_user_approve", "label": "can_user_approve()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L252"}, {"id": "crm_quote_approval_rationale_1", "label": "CRM \u62a5\u4ef7\u5355\u5ba1\u6279 CRUD \u2014 \u5bf9\u7167 CrmQuoteApprovalServiceImpl.java", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L1"}, {"id": "crm_quote_approval_rationale_48", "label": "Java: queryListByQuoteId\uff08\u542b\u5ba1\u6279\u4eba\u6635\u79f0\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L48"}, {"id": "crm_quote_approval_rationale_87", "label": "Java: createApprovalRecords", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L87"}, {"id": "crm_quote_approval_rationale_189", "label": "Java: CrmQuoteApprovalServiceImpl.withdrawApproval\uff08\u4e0d\u6821\u9a8c\u521b\u5efa\u4eba\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L189"}, {"id": "crm_quote_approval_rationale_213", "label": "Java: deletePendingApprovals", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py", "source_location": "L213"}, {"id": "crm_quote_approval_rationale_232", "label": "Java: refreshApproverNames", "file_type": "rationale", "source_file": "Line truncated
|
||||
backend/graphify-out/cache/ast/1ec34590092e5b9ca5756d4ef42532bf5e1686aa0e9728300265777a79c4f8b9.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}, {"id": "crm_product_productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_product_productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26"}, {"id": "crm_product_categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L41"}, {"id": "crm_product_productupdatestatusbody", "label": "ProductUpdateStatusBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L47"}, {"id": "crm_product_productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L57"}, {"id": "crm_product_productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L69"}, {"id": "crm_product_productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L90"}, {"id": "crm_product_productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L112"}, {"id": "crm_product_productdeletebody", "label": "ProductDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L118"}, {"id": "crm_product_productoptionsbody", "label": "ProductOptionsBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L125"}, {"id": "crm_product_rationale_1", "label": "CRM \u4ea7\u54c1\u6a21\u5757 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "crm_product_productcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "crm_product_productcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_categorydeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2Line truncated
|
||||
backend/graphify-out/cache/ast/1fd30d3af0fbb1cf9dcbdd5899d6a90d1e814ff67406246830f58d39bfb5540f.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "label": "invoice_info.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L1"}, {"id": "crm_invoice_info_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L16"}, {"id": "crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L16"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L16"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L16"}, {"id": "crm_invoice_info_list_invoice_info_by_customer", "label": "list_invoice_info_by_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L38"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L38"}, {"id": "crm_invoice_info_get_invoice_info", "label": "get_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L56"}, {"id": "crm_invoice_info_clear_default_for_customer", "label": "_clear_default_for_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L67"}, {"id": "crm_invoice_info_create_invoice_info", "label": "create_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L84"}, {"id": "crm_invoice_info_update_invoice_info", "label": "update_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L129"}, {"id": "crm_invoice_info_set_default_invoice_info", "label": "set_default_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L177"}, {"id": "crm_invoice_info_soft_delete_invoice_info", "label": "soft_delete_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L200"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L200"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_invoice_info_py", "target": "crm_invoice_info_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py", "source_location": "L16", "weight": 1.0}, {"source": "crm_invoice_info_row_to_dict", "target": "crminvoiceinfo", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_fileLine truncated
|
||||
backend/graphify-out/cache/ast/29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_quote_py", "label": "quote.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L1"}, {"id": "crm_quote_quoteproductitem", "label": "QuoteProductItem", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L8"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_quote_quotelistbody", "label": "QuoteListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L32"}, {"id": "crm_quote_quotedetailbody", "label": "QuoteDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L58"}, {"id": "crm_quote_quotedeletebody", "label": "QuoteDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L62"}, {"id": "crm_quote_quotecreatebody", "label": "QuoteCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L66"}, {"id": "crm_quote_quoteupdatebody", "label": "QuoteUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L99"}, {"id": "crm_quote_quotesubmitbody", "label": "QuoteSubmitBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L103"}, {"id": "crm_quote_quotetemplatesavebody", "label": "QuoteTemplateSaveBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L109"}, {"id": "crm_quote_quotetemplategetbody", "label": "QuoteTemplateGetBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L114"}, {"id": "crm_quote_quotepdfbody", "label": "QuotePdfBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L118"}, {"id": "crm_quote_quotesharegeneratebody", "label": "QuoteShareGenerateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L122"}, {"id": "crm_quote_quoteacceptbody", "label": "QuoteAcceptBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L128"}, {"id": "crm_quote_quoterejectbody", "label": "QuoteRejectBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L133"}, {"id": "crm_quote_quotetocontractbody", "label": "QuoteToContractBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L139"}, {"id": "crm_quote_quotenewversionbody", "label": "QuoteNewVersionBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L148"}, {"id": "crm_quote_quoteversionsbody", "label": "QuoteVersionsBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L154"}, {"id": "crm_quote_quoteinvalidbody", "label": "QuoteInvalidBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L158"}, {"id": "crm_quote_quotestatisticsoverviewbody", "label": "QuoteStatisticsOverviewBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L163"}, {"id": "crm_quote_quotestatisticstrendbody", "label": "QuoteStatisticsTrendBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L169"}, {"id": "crm_quote_quoteproductlistbody", "label": "QuoteProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L175"}, {"id": "crm_quote_quoteproductcreatebody", "label": "QuoteProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L179"}, {"id": "crm_quote_quoteproductupdatebody", "label": "QuoteProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py", "source_location": "L198"}, {"id": "crm_quote_quoteproductdeletebody", "label": "QuoteProductDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/Line truncated
|
||||
backend/graphify-out/cache/ast/300b65a7920b4f67a81909547954364ae45ecb493b11444ed304a194e51b27a0.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L71"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L103"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L205"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L240"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L268"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L299"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L325"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L348"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L391"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L422"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L452"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L483"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L566"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L597"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L628"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L662"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L700"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L725"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L783"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L818"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/3b566fb1e7607718a36af65a8db127de8462250ee773d928677dca998b6ce933.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L1"}, {"id": "crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L117"}, {"id": "crm_contract_get_default_invoice_info", "label": "_get_default_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L125"}, {"id": "crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L135"}, {"id": "crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L224"}, {"id": "crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "crm_contract_list_contracts", "label": "list_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L369"}, {"id": "crm_contract_get_contract", "label": "get_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/appLine truncated
|
||||
backend/graphify-out/cache/ast/4102b586c625782b58c0a70a0c94f1c203dff427dc1708316d23a3689d78fa9c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_customer_customerlistbody_to_list_kwargs", "label": ".to_list_kwargs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "crm_customer_customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L72"}, {"id": "crm_customer_customercreatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L110"}, {"id": "crm_customer_customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L135"}, {"id": "crm_customer_customerupdatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L174"}, {"id": "crm_customer_customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L199"}, {"id": "crm_customer_customerdetailbody", "label": "CustomerDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L207"}, {"id": "crm_customer_customertransferbody", "label": "CustomerTransferBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L214"}, {"id": "crm_customer_customerintopoolbody", "label": "CustomerIntoPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L226"}, {"id": "crm_customer_customerdealbody", "label": "CustomerDealBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L236"}, {"id": "crm_customer_customerclaimbody", "label": "CustomerClaimBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L248"}, {"id": "crm_customer_customerassignpoolbody", "label": "CustomerAssignPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L257"}, {"id": "crm_customer_customercheckduplicatebody", "label": "CustomerCheckDuplicateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L268"}, {"id": "crm_customer_rationale_1", "label": "CRM \u5ba2\u6237\u7ba1\u7406 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_rationale_40", "label": "\u89e3\u6790\u5217\u8868\u67e5\u8be2\u53c2\u6570\uff0c\u4f9b API \u4e0e CRUD \u5171\u7528\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L40"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemasLine truncated
|
||||
backend/graphify-out/cache/ast/418a2eeba8f6c8f8d0e30ab4edbeb6af5c936e3012e279a1c60d3a22e232740f.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "crm_customer_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "crm_customer_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "crm_customer_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "crm_customer_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L70"}, {"id": "crm_customer_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crm_customer_list_customers", "label": "list_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L151"}, {"id": "crm_customer_list_pool_customers", "label": "list_pool_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L260"}, {"id": "crm_customer_get_customer", "label": "get_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L284"}, {"id": "crm_customer_get_customer_by_no", "label": "get_customer_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L295"}, {"id": "crm_customer_generate_customer_no", "label": "generate_customer_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L307"}, {"id": "crm_customer_customer_name_exists", "label": "customer_name_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L333"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L333"}, {"id": "crm_customer_check_duplicate_customer", "label": "check_duplicate_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L346"}, {"id": "crm_customer_create_customer", "label": "create_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L367"}, {"id": "crm_customer_update_customer", "label": "update_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L430"}, {"id": "crm_customer_soft_delete_customer", "label": "soft_delete_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L472"}, {"id": "crm_customer_transfer_customer", "label": "traLine truncated
|
||||
backend/graphify-out/cache/ast/48b71c8bded2be86c88f62a428a6b6f77800685d82d26f805f944ec32dd2c36f.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1"}, {"id": "crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L59"}, {"id": "crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L70"}, {"id": "crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L76"}, {"id": "crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L88"}, {"id": "crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L125"}, {"id": "crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L160"}, {"id": "crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L238"}, {"id": "crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L281"}, {"id": "crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L293"}, {"id": "crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L306"}, {"id": "crm_product_create_product", "label": "create_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L334"}, {"id": "crm_product_update_product", "label": "update_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L380"}, {"id": "crm_product_soft_delete_product", "label": "soft_delete_product()", "file_type": "code",Line truncated
|
||||
backend/graphify-out/cache/ast/4f9003b9cb4393464a7615937257dc4e9d2032d03ab0aa1b441972aeaaeed78c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_apply_default_invoice_info_to_customers", "label": "_apply_default_invoice_info_to_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L324"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L324"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L324"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L324"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L381"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L401"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L401"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L434"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L459"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L459"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L492"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L492"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L520"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L520"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L546"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L562"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L562"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L600"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L600"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L619"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L619"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L653"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L653"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/bacLine truncated
|
||||
backend/graphify-out/cache/ast/51bce9573dc26c9332dcbf42723844142baa130eaab6beffb33dee037840d706.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L76"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L108"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L191"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L226"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L254"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L285"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L311"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L334"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L377"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L408"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L438"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L469"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L552"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L583"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L614"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L648"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L686"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L711"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L769"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L804"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/5a444ae748b236a475977d7f2224264d03548e1c867a67a83d3ed5be1a8fbab7.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_admin_py", "label": "admin.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1"}, {"id": "api_admin_list_roles_for_select", "label": "list_roles_for_select()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L42"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L42"}, {"id": "api_admin_list_users_for_select", "label": "list_users_for_select()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L74"}, {"id": "api_admin_list_roles_for_designer", "label": "list_roles_for_designer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L97"}, {"id": "api_admin_tenantcreatebody", "label": "TenantCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L117"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_admin_tenantupdatebody", "label": "TenantUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L128"}, {"id": "api_admin_list_tenants", "label": "list_tenants()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L140"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L140"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L140"}, {"id": "api_admin_create_tenant", "label": "create_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L161"}, {"id": "api_admin_update_tenant", "label": "update_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L183"}, {"id": "api_admin_delete_tenant", "label": "delete_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L208"}, {"id": "api_admin_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L225"}, {"id": "api_admin_usercreatebody", "label": "UserCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L238"}, {"id": "api_admin_userupdatebody", "label": "UserUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L255"}, {"id": "api_admin_list_users", "label": "list_users()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L271"}, {"id": "api_admin_get_user_by_id", "label": "get_user_by_id()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L315"}, {"id": "api_admin_create_user", "label": "create_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L331"}, {"id": "api_admin_update_user", "label": "update_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L364"}, {"id": "api_admin_delete_user", "label": "delete_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L394"}, {"id": "api_admin_reset_user_password", "label": "reset_user_password()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L407"}, {"id": "api_admin_dicttypecreatebody", "label": "DictTypeCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L424"}, {"id": "api_admin_dicttypeupdatebody", "label": "DictTypeUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L433"}, {"id": "api_admin_list_dict_types", "label": "list_dict_types()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L443"}, {"id": "api_admin_create_dict_type", "label": "create_dict_type()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/Line truncated
|
||||
backend/graphify-out/cache/ast/60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "label": "contact.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L1"}, {"id": "crm_contact_contactlistbody", "label": "ContactListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L8"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_contact_contactcreatebody", "label": "ContactCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L24"}, {"id": "crm_contact_contactupdatebody", "label": "ContactUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L47"}, {"id": "crm_contact_contactdeletebody", "label": "ContactDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L71"}, {"id": "crm_contact_contactdetailbody", "label": "ContactDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L75"}, {"id": "crm_contact_contactbycustomerbody", "label": "ContactByCustomerBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L79"}, {"id": "crm_contact_contactsetprimarybody", "label": "ContactSetPrimaryBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L85"}, {"id": "crm_contact_rationale_1", "label": "CRM \u8054\u7cfb\u4eba Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "crm_contact_contactlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L8", "weight": 1.0}, {"source": "crm_contact_contactlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "crm_contact_contactcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L24", "weight": 1.0}, {"source": "crm_contact_contactcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L24", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "crm_contact_contactupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L47", "weight": 1.0}, {"source": "crm_contact_contactupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L47", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "crm_contact_contactdeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L71", "weight": 1.0}, {"source": "crm_contact_contactdeletebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py", "source_location": "L71", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_contact_py", "target": "crm_contact_contactdetailbodyLine truncated
|
||||
backend/graphify-out/cache/ast/622798d5e8b6580fdf9f76ba7d898bf41ffe044d928d4e45f33f10dfa8e82e9d.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_quote_py", "label": "quote.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L1"}, {"id": "crm_quote_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "crm_quote_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "crm_quote_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "crm_quote_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "crm_quote_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "crm_quote_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "crm_quote_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crm_quote_quote_row_to_dict", "label": "quote_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L155"}, {"id": "crm_quote_build_quote_filters", "label": "_build_quote_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "crm_quote_fill_contract_linked_count", "label": "_fill_contract_linked_count()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L267"}, {"id": "crm_quote_calculate_quote_amount", "label": "calculate_quote_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L289"}, {"id": "crm_quote_resolve_quote_product_ids", "label": "_resolve_quote_product_ids()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L315"}, {"id": "crm_quote_generate_quote_no", "label": "generate_quote_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L336"}, {"id": "crm_quote_generate_quote_title", "label": "generate_quote_title()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L386"}, {"id": "crm_quote_get_supplier_short_name", "label": "_get_supplier_short_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L398"}, {"id": "crm_quote_enrich_contact_fields", "label": "_enrich_contact_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "soLine truncated
|
||||
backend/graphify-out/cache/ast/666defde89f241098392d538da410833d261a3666cb07b45fe764840b5107523.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L72"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L104"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L198"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L233"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L261"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L292"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L318"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L341"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L384"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L415"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L445"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L476"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L559"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L590"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L621"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L655"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L693"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L718"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L776"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L811"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/69180f9c874f4015ba6530318ba995b9ae55ca8b7181adce63b9fc9c8693da84.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_customer_customerlistbody_to_list_kwargs", "label": ".to_list_kwargs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "crm_customer_customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L72"}, {"id": "crm_customer_customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L123"}, {"id": "crm_customer_customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L175"}, {"id": "crm_customer_customerdetailbody", "label": "CustomerDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L183"}, {"id": "crm_customer_customertransferbody", "label": "CustomerTransferBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L190"}, {"id": "crm_customer_customerintopoolbody", "label": "CustomerIntoPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L202"}, {"id": "crm_customer_customerdealbody", "label": "CustomerDealBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L212"}, {"id": "crm_customer_customerclaimbody", "label": "CustomerClaimBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L224"}, {"id": "crm_customer_customerassignpoolbody", "label": "CustomerAssignPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L233"}, {"id": "crm_customer_customercheckduplicatebody", "label": "CustomerCheckDuplicateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L244"}, {"id": "crm_customer_rationale_1", "label": "CRM \u5ba2\u6237\u7ba1\u7406 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_rationale_40", "label": "\u89e3\u6790\u5217\u8868\u67e5\u8be2\u53c2\u6570\uff0c\u4f9b API \u4e0e CRUD \u5171\u7528\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L40"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "crm_customer_customerlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L12", "weight": 1.0}, {"source": "crm_customer_customerlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/UserLine truncated
|
||||
backend/graphify-out/cache/ast/75859ecc807b96f8559ec1ac1a6452c207e860f9d2bed1aa2ab7574fd37c3d85.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}, {"id": "crm_product_productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_product_productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26"}, {"id": "crm_product_categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L41"}, {"id": "crm_product_productupdatestatusbody", "label": "ProductUpdateStatusBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L47"}, {"id": "crm_product_productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L57"}, {"id": "crm_product_productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L69"}, {"id": "crm_product_productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L99"}, {"id": "crm_product_productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L130"}, {"id": "crm_product_productdeletebody", "label": "ProductDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L136"}, {"id": "crm_product_productoptionsbody", "label": "ProductOptionsBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L143"}, {"id": "crm_product_rationale_1", "label": "CRM \u4ea7\u54c1\u6a21\u5757 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "crm_product_productcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "crm_product_productcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_categorydeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2Line truncated
|
||||
backend/graphify-out/cache/ast/761897ae5a6a606a83cc46c22dbac0b9f4d598e8e510a7394c58ca1d78edf84c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}, {"id": "crm_product_productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_product_productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26"}, {"id": "crm_product_categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L41"}, {"id": "crm_product_productupdatestatusbody", "label": "ProductUpdateStatusBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L47"}, {"id": "crm_product_productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L57"}, {"id": "crm_product_productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L69"}, {"id": "crm_product_productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L100"}, {"id": "crm_product_productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L132"}, {"id": "crm_product_productdeletebody", "label": "ProductDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L138"}, {"id": "crm_product_productoptionsbody", "label": "ProductOptionsBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L145"}, {"id": "crm_product_rationale_1", "label": "CRM \u4ea7\u54c1\u6a21\u5757 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "crm_product_productcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_productcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "crm_product_productcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py", "source_location": "L26", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_product_py", "target": "crm_product_categorydeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxiaLine truncated
|
||||
backend/graphify-out/cache/ast/79a2a290f644967b788c45e4923d345e009fa42707a758dbb5e9bc7d3d877fa2.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L326"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L326"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L346"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L346"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L378"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L401"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L401"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L434"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L434"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L462"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L462"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L488"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L504"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L504"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L523"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L523"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L542"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L542"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L561"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L561"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L595"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L595"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L613"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L613"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L636"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/7b8eaa08461c95056307dab6254ae378717b4f38913a2a71742ad30fac9da00b.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L379"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L482"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L630"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/84d9484bfab05bebef3cf263dbc9483520f6829bf8ae4982c241591fd98f7c7b.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L71"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L103"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L197"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L232"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L260"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L291"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L317"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L340"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L383"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L414"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L444"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L475"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L558"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L589"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L620"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L654"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L692"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L717"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L775"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L810"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/92386f86d36742f605b9b6499ab44d7647ecf28015fb535de45c178616eb1b21.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_customer_customerlistbody_to_list_kwargs", "label": ".to_list_kwargs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "crm_customer_customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L72"}, {"id": "crm_customer_customercreatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L128"}, {"id": "crm_customer_customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L144"}, {"id": "crm_customer_customerupdatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L201"}, {"id": "crm_customer_customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L217"}, {"id": "crm_customer_customerdetailbody", "label": "CustomerDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L225"}, {"id": "crm_customer_customertransferbody", "label": "CustomerTransferBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L232"}, {"id": "crm_customer_customerintopoolbody", "label": "CustomerIntoPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L244"}, {"id": "crm_customer_customerdealbody", "label": "CustomerDealBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L254"}, {"id": "crm_customer_customerclaimbody", "label": "CustomerClaimBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L266"}, {"id": "crm_customer_customerassignpoolbody", "label": "CustomerAssignPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L275"}, {"id": "crm_customer_customercheckduplicatebody", "label": "CustomerCheckDuplicateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L286"}, {"id": "crm_customer_rationale_1", "label": "CRM \u5ba2\u6237\u7ba1\u7406 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_rationale_40", "label": "\u89e3\u6790\u5217\u8868\u67e5\u8be2\u53c2\u6570\uff0c\u4f9b API \u4e0e CRUD \u5171\u7528\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L40"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemasLine truncated
|
||||
backend/graphify-out/cache/ast/9d90392069b624573be2086faf2f6893ff30fa9dc9cdad5fba19efde8f4bfde0.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_quote_py", "label": "quote.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L1"}, {"id": "crm_quote_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "crm_quote_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "crm_quote_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "crm_quote_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "crm_quote_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "crm_quote_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "crm_quote_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crm_quote_quote_row_to_dict", "label": "quote_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L155"}, {"id": "crm_quote_build_quote_filters", "label": "_build_quote_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "crm_quote_fill_contract_linked_count", "label": "_fill_contract_linked_count()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L290"}, {"id": "crm_quote_calculate_quote_amount", "label": "calculate_quote_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L312"}, {"id": "crm_quote_resolve_quote_product_ids", "label": "_resolve_quote_product_ids()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L338"}, {"id": "crm_quote_generate_quote_no", "label": "generate_quote_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L359"}, {"id": "crm_quote_generate_quote_title", "label": "generate_quote_title()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L409"}, {"id": "crm_quote_get_supplier_short_name", "label": "_get_supplier_short_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L421"}, {"id": "crm_quote_enrich_contact_fields", "label": "_enrich_contact_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "soLine truncated
|
||||
backend/graphify-out/cache/ast/9fa1fb08d3b1f1fd3006f19063083beb3eae0d5a447f8dbc37575db1c0df7166.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "label": "crm_quote_routes.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L1"}, {"id": "api_crm_quote_routes_register_quote_routes", "label": "register_quote_routes()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L82"}, {"id": "api_crm_quote_routes_rationale_1", "label": "CRM \u62a5\u4ef7\u5355 API \u8def\u7531 \u2014 \u6302\u63a5\u5230 crm.router", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "fastapi", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_core_menu_guard", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_core_response", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L11", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_core_tenant_context", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L12", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_crud_crm_quote", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_crud_crm_quote_approval", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L35", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_crud_crm_quote_product", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L41", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_crud_crm_quote_share_log", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L47", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_schemas_crm_quote", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L48", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_quote_routes_py", "target": "app_utils_crm_export_columns", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py", "source_location": "L78", "weight": 1.0}, {"source": "userLine truncated
|
||||
backend/graphify-out/cache/ast/a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "label": "invoice_info.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L1"}, {"id": "crm_invoice_info_invoiceinfobycustomerbody", "label": "InvoiceInfoByCustomerBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L8"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_invoice_info_invoiceinfocreatebody", "label": "InvoiceInfoCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L14"}, {"id": "crm_invoice_info_invoiceinfoupdatebody", "label": "InvoiceInfoUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L30"}, {"id": "crm_invoice_info_invoiceinfodeletebody", "label": "InvoiceInfoDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L47"}, {"id": "crm_invoice_info_invoiceinfosetdefaultbody", "label": "InvoiceInfoSetDefaultBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L52"}, {"id": "crm_invoice_info_rationale_1", "label": "CRM \u5ba2\u6237\u5f00\u7968\u4fe1\u606f Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "crm_invoice_info_invoiceinfobycustomerbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L8", "weight": 1.0}, {"source": "crm_invoice_info_invoiceinfobycustomerbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "crm_invoice_info_invoiceinfocreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L14", "weight": 1.0}, {"source": "crm_invoice_info_invoiceinfocreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L14", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "crm_invoice_info_invoiceinfoupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L30", "weight": 1.0}, {"source": "crm_invoice_info_invoiceinfoupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L30", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "crm_invoice_info_invoiceinfodeletebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L47", "weight": 1.0}, {"source": "crm_invoice_info_invoiceinfodeletebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py", "source_location": "L47", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_invoice_info_py", "target": "crm_invoice_info_invoiceinfosetdefaultbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00codeLine truncated
|
||||
backend/graphify-out/cache/ast/a8c561db25467164904677dab4cc76f1b966b4dc66e6a8387e609b6687fb959c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_quote_py", "label": "quote.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L1"}, {"id": "crm_quote_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L39"}, {"id": "crm_quote_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L45"}, {"id": "crm_quote_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L53"}, {"id": "crm_quote_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L71"}, {"id": "crm_quote_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L87"}, {"id": "crm_quote_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L94"}, {"id": "crm_quote_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L104"}, {"id": "crm_quote_quote_row_to_dict", "label": "quote_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L155"}, {"id": "crm_quote_build_quote_filters", "label": "_build_quote_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L159"}, {"id": "crm_quote_fill_contract_linked_count", "label": "_fill_contract_linked_count()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L267"}, {"id": "crm_quote_calculate_quote_amount", "label": "calculate_quote_amount()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L289"}, {"id": "crm_quote_resolve_quote_product_ids", "label": "_resolve_quote_product_ids()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L315"}, {"id": "crm_quote_generate_quote_no", "label": "generate_quote_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L336"}, {"id": "crm_quote_generate_quote_title", "label": "generate_quote_title()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L386"}, {"id": "crm_quote_get_supplier_short_name", "label": "_get_supplier_short_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "source_location": "L398"}, {"id": "crm_quote_enrich_contact_fields", "label": "_enrich_contact_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py", "soLine truncated
|
||||
backend/graphify-out/cache/ast/aa2b96720dcf3182deb45e888ec96b737709fa04b9786d4e1fc984925c9829a6.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L379"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L482"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L630"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/aaa23bf3dbbf85ff162dde638384ba26357ba72710d14d24357c5e73ab39ae8e.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "label": "customer_follow.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L1"}, {"id": "crm_customer_follow_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L16"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L16"}, {"id": "crm_customer_follow_enrich_follow_dict", "label": "_enrich_follow_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L25"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L25"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L25"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L25"}, {"id": "crm_customer_follow_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L34"}, {"id": "crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L34"}, {"id": "crm_customer_follow_list_follows", "label": "list_follows()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L58"}, {"id": "crm_customer_follow_list_follows_by_customer", "label": "list_follows_by_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L111"}, {"id": "crm_customer_follow_get_follow", "label": "get_follow()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L129"}, {"id": "crm_customer_follow_create_follow", "label": "create_follow()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L140"}, {"id": "crm_customer_follow_update_follow", "label": "update_follow()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L190"}, {"id": "crm_customer_follow_soft_delete_follow", "label": "soft_delete_follow()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L216"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L216"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_follow_py", "target": "app_core_utLine truncated
|
||||
backend/graphify-out/cache/ast/ab14876ffc1816b98b30f3b931883ec8bcb89daf5cc8b471ad134c91a7b3744b.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L1"}, {"id": "crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L117"}, {"id": "crm_contract_get_default_invoice_info", "label": "_get_default_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L125"}, {"id": "crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L135"}, {"id": "crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L224"}, {"id": "crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "crm_contract_list_contracts", "label": "list_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L369"}, {"id": "crm_contract_get_contract", "label": "get_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/appLine truncated
|
||||
backend/graphify-out/cache/ast/aed5c1a7d86743861b5a541b60b6de8e7e53fcd2f98ae7e6386274c1755e301d.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_core_attachment_biz_py", "label": "attachment_biz.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L1"}, {"id": "core_attachment_biz_resolve_upload_folder", "label": "resolve_upload_folder()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16"}, {"id": "core_attachment_biz_rationale_1", "label": "\u9644\u4ef6\u4e0a\u4f20 bizType \u4e0e MinIO \u76ee\u5f55\u6620\u5c04\uff08\u5bf9\u9f50\u539f CRM oss \u4e0a\u4f20\u8bed\u4e49\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L1"}, {"id": "core_attachment_biz_rationale_17", "label": "\u4f18\u5148\u4f7f\u7528\u663e\u5f0f folder\uff1b\u5426\u5219\u6309 bizType \u6620\u5c04\u9ed8\u8ba4\u76ee\u5f55\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L17"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_core_attachment_biz_py", "target": "core_attachment_biz_resolve_upload_folder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16", "weight": 1.0}, {"source": "core_attachment_biz_resolve_upload_folder", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16", "weight": 1.0}, {"source": "core_attachment_biz_resolve_upload_folder", "target": "str", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16", "weight": 1.0}, {"source": "core_attachment_biz_resolve_upload_folder", "target": "str", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L16", "weight": 1.0}, {"source": "core_attachment_biz_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_core_attachment_biz_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L1", "weight": 1.0}, {"source": "core_attachment_biz_rationale_17", "target": "core_attachment_biz_resolve_upload_folder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L17", "weight": 1.0}], "raw_calls": [{"caller_nid": "core_attachment_biz_resolve_upload_folder", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L18"}, {"caller_nid": "core_attachment_biz_resolve_upload_folder", "callee": "get", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L21"}, {"caller_nid": "core_attachment_biz_resolve_upload_folder", "callee": "strip", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py", "source_location": "L21"}]}
|
||||
backend/graphify-out/cache/ast/b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "label": "crm_export_columns.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1"}, {"id": "utils_crm_export_columns_yes_no", "label": "_yes_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7"}, {"id": "utils_crm_export_columns_rationale_1", "label": "CRM \u6a21\u5757 Excel \u5bfc\u51fa\u5217\u5b9a\u4e49\uff08\u5b57\u6bb5\u4e0e\u5b57\u5178\u7c7b\u578b\u5bf9\u9f50 Java *Vo @ExcelDictFormat\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "target": "utils_crm_export_columns_yes_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7", "weight": 1.0}, {"source": "utils_crm_export_columns_yes_no", "target": "str", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7", "weight": 1.0}, {"source": "utils_crm_export_columns_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
backend/graphify-out/cache/ast/b62e39d25b6268175a8c7710b959e82ece5292709e33a79c8923b4f766fd146c.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L1"}, {"id": "crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L47"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L47"}, {"id": "crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L53"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L53"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L53"}, {"id": "crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L61"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L61"}, {"id": "crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L79"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L79"}, {"id": "crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L95"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L95"}, {"id": "crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L102"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L102"}, {"id": "crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L112"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L112"}, {"id": "crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L116"}, {"id": "crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L124"}, {"id": "crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L136"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L136"}, {"id": "crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L213"}, {"id": "crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L217"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L217"}, {"id": "crm_contract_list_contracts", "label": "list_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L351"}, {"id": "crm_contract_get_contract", "label": "get_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L382"}, {"id": "crm_contract_get_contract_detail", "label": "get_contract_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/cLine truncated
|
||||
backend/graphify-out/cache/ast/b76e87c1f0b978e2bdc2d176aacf630cb0c509e22fc9ca85d4c8f1f4de29ed0a.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "crm_customer_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "crm_customer_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "crm_customer_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "crm_customer_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L70"}, {"id": "crm_customer_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crm_customer_list_customers", "label": "list_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L166"}, {"id": "crm_customer_list_pool_customers", "label": "list_pool_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L275"}, {"id": "crm_customer_get_customer", "label": "get_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L299"}, {"id": "crm_customer_get_customer_by_no", "label": "get_customer_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L310"}, {"id": "crm_customer_generate_customer_no", "label": "generate_customer_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L322"}, {"id": "crm_customer_customer_name_exists", "label": "customer_name_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L348"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L348"}, {"id": "crm_customer_check_duplicate_customer", "label": "check_duplicate_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L361"}, {"id": "crm_customer_create_customer", "label": "create_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L382"}, {"id": "crm_customer_update_customer", "label": "update_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L454"}, {"id": "crm_customer_soft_delete_customer", "label": "soft_delete_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L498"}, {"id": "crm_customer_transfer_customer", "label": "traLine truncated
|
||||
backend/graphify-out/cache/ast/ba1f2c578860b8c214333cc8083e1eab062e0a7840900f9e77df4a416bd70d90.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L77"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L109"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L203"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L238"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L266"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L297"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L323"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L346"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L389"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L420"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L450"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L481"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L564"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L595"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L626"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L660"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L698"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L723"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L781"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L816"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/bab84ecd304f20dcdea4b552c992e4b37ae2f9d2f4801047685f9c8c434b8046.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L339"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L339"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L371"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L394"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L394"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L423"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L423"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L448"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L448"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L474"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L509"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L509"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L528"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L528"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L547"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L547"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L599"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L599"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L622"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/bb9b1bd3bc49b029a55ded701351e4624247e2ad793bb4df5d6957bcb9db768f.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L12"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_customer_customerlistbody_to_list_kwargs", "label": ".to_list_kwargs()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L39"}, {"id": "crm_customer_customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L72"}, {"id": "crm_customer_customercreatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L121"}, {"id": "crm_customer_customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L146"}, {"id": "crm_customer_customerupdatebody_forbid_legacy_invoice_fields", "label": "._forbid_legacy_invoice_fields()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L196"}, {"id": "crm_customer_customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L221"}, {"id": "crm_customer_customerdetailbody", "label": "CustomerDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L229"}, {"id": "crm_customer_customertransferbody", "label": "CustomerTransferBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L236"}, {"id": "crm_customer_customerintopoolbody", "label": "CustomerIntoPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L248"}, {"id": "crm_customer_customerdealbody", "label": "CustomerDealBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L258"}, {"id": "crm_customer_customerclaimbody", "label": "CustomerClaimBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L270"}, {"id": "crm_customer_customerassignpoolbody", "label": "CustomerAssignPoolBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L279"}, {"id": "crm_customer_customercheckduplicatebody", "label": "CustomerCheckDuplicateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L290"}, {"id": "crm_customer_rationale_1", "label": "CRM \u5ba2\u6237\u7ba1\u7406 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_rationale_40", "label": "\u89e3\u6790\u5217\u8868\u67e5\u8be2\u53c2\u6570\uff0c\u4f9b API \u4e0e CRUD \u5171\u7528\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L40"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "decimal", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemasLine truncated
|
||||
backend/graphify-out/cache/ast/c364ede84e65795c465e44737c1a85d5f37a4c8351fdf82ed9cf2145159f802e.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "label": "contact.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L1"}, {"id": "crm_contact_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L15"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L15"}, {"id": "crm_contact_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L25"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L25"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L25"}, {"id": "crm_contact_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L43"}, {"id": "crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L43"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L43"}, {"id": "crm_contact_list_contacts", "label": "list_contacts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L72"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L72"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L72"}, {"id": "crm_contact_list_contacts_by_customer", "label": "list_contacts_by_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L145"}, {"id": "crm_contact_get_contact", "label": "get_contact()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L163"}, {"id": "crm_contact_create_contact", "label": "create_contact()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L174"}, {"id": "crm_contact_update_contact", "label": "update_contact()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L227"}, {"id": "crm_contact_set_primary_contact", "label": "set_primary_contact()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L263"}, {"id": "crm_contact_soft_delete_contact", "label": "soft_delete_contact()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L282"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L6", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contact_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00coLine truncated
|
||||
backend/graphify-out/cache/ast/c423322a4fe5ebd564be7d043dade0d08a1a3158e5e6827629bc8be9201d9015.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_admin_py", "label": "admin.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L1"}, {"id": "api_admin_list_roles_for_select", "label": "list_roles_for_select()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L42"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L42"}, {"id": "api_admin_list_users_for_select", "label": "list_users_for_select()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L74"}, {"id": "api_admin_list_roles_for_designer", "label": "list_roles_for_designer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L89"}, {"id": "api_admin_tenantcreatebody", "label": "TenantCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L109"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_admin_tenantupdatebody", "label": "TenantUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L120"}, {"id": "api_admin_list_tenants", "label": "list_tenants()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L132"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L132"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L132"}, {"id": "api_admin_create_tenant", "label": "create_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L153"}, {"id": "api_admin_update_tenant", "label": "update_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L175"}, {"id": "api_admin_delete_tenant", "label": "delete_tenant()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L200"}, {"id": "api_admin_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L217"}, {"id": "api_admin_usercreatebody", "label": "UserCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L230"}, {"id": "api_admin_userupdatebody", "label": "UserUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L247"}, {"id": "api_admin_list_users", "label": "list_users()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L263"}, {"id": "api_admin_get_user_by_id", "label": "get_user_by_id()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L307"}, {"id": "api_admin_create_user", "label": "create_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L323"}, {"id": "api_admin_update_user", "label": "update_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L356"}, {"id": "api_admin_delete_user", "label": "delete_user()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L386"}, {"id": "api_admin_reset_user_password", "label": "reset_user_password()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L399"}, {"id": "api_admin_dicttypecreatebody", "label": "DictTypeCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L416"}, {"id": "api_admin_dicttypeupdatebody", "label": "DictTypeUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L425"}, {"id": "api_admin_list_dict_types", "label": "list_dict_types()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py", "source_location": "L435"}, {"id": "api_admin_create_dict_type", "label": "create_dict_type()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/Line truncated
|
||||
backend/graphify-out/cache/ast/cb64cc2be755456adbf1c68311b382b6a41e1ea48dd78fbd3fe839f07ce56905.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_contract_py", "label": "contract.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L1"}, {"id": "crm_contract_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L48"}, {"id": "crm_contract_decimal_value", "label": "_decimal_value()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "decimal", "label": "Decimal", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L54"}, {"id": "crm_contract_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L62"}, {"id": "crm_contract_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L80"}, {"id": "crm_contract_get_field", "label": "_get_field()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L96"}, {"id": "crm_contract_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L103"}, {"id": "crm_contract_is_blank", "label": "_is_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L113"}, {"id": "crm_contract_first_non_blank", "label": "_first_non_blank()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L117"}, {"id": "crm_contract_get_default_invoice_info", "label": "_get_default_invoice_info()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L125"}, {"id": "crm_contract_build_customer_address", "label": "_build_customer_address()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L135"}, {"id": "crm_contract_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L147"}, {"id": "crm_contract_contract_row_to_dict", "label": "contract_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L224"}, {"id": "crm_contract_build_contract_filters", "label": "_build_contract_filters()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "query", "label": "Query", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L228"}, {"id": "crm_contract_list_contracts", "label": "list_contracts()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py", "source_location": "L362"}, {"id": "crm_contract_get_contract", "label": "get_contract()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/appLine truncated
|
||||
backend/graphify-out/cache/ast/d789e930ba5d5324af2fca3d7f769d107bfb8c42efb3ad694f90fa565caa685a.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L347"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L379"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L402"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L431"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L456"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L482"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L498"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L517"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L536"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L555"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L589"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L607"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L630"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/d9743e516d19c9451ea990d0d6470b86f488e4393a7d1cc6eb5432b750230cea.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L318"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L318"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L338"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L338"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L370"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L393"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L393"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L422"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L422"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L447"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L447"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L473"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L489"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L489"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L508"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L508"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L527"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L527"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L546"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L546"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L580"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L580"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L598"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L598"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L621"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/e13876dd635ce99e7aa72b3a77b3a5d6dfbdba9811c24103b8f67cf9a82970a5.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1"}, {"id": "crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L59"}, {"id": "crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L70"}, {"id": "crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L76"}, {"id": "crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L88"}, {"id": "crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L125"}, {"id": "crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L160"}, {"id": "crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L245"}, {"id": "crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L288"}, {"id": "crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L300"}, {"id": "crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L313"}, {"id": "crm_product_generate_barcode", "label": "generate_barcode()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L341"}, {"id": "crm_product_create_product", "label": "create_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L369"}, {"id": "crm_product_update_product", "label": "update_product()", "file_type": "code", "sourLine truncated
|
||||
backend/graphify-out/cache/ast/e63e37701c41434e1d8edc5a517594d1fcf886056d8a48cdd304e9554013fb6b.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "label": "crm_export_columns.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1"}, {"id": "utils_crm_export_columns_yes_no", "label": "_yes_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7"}, {"id": "utils_crm_export_columns_rationale_1", "label": "CRM \u6a21\u5757 Excel \u5bfc\u51fa\u5217\u5b9a\u4e49\uff08\u5b57\u6bb5\u4e0e\u5b57\u5178\u7c7b\u578b\u5bf9\u9f50 Java *Vo @ExcelDictFormat\uff09\u3002", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "target": "app_utils_excel_export", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "target": "utils_crm_export_columns_yes_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7", "weight": 1.0}, {"source": "utils_crm_export_columns_yes_no", "target": "str", "relation": "references", "context": "return_type", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L7", "weight": 1.0}, {"source": "utils_crm_export_columns_rationale_1", "target": "users_zlwu_work_00code_shanxia2_0_backend_app_utils_crm_export_columns_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
backend/graphify-out/cache/ast/e7f0190a0ac2e8cdad82b0dd10f93eb32b8e34f419c8f878b86ba9b07d7510f6.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1"}, {"id": "crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L59"}, {"id": "crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L70"}, {"id": "crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L76"}, {"id": "crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L88"}, {"id": "crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L125"}, {"id": "crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L160"}, {"id": "crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L244"}, {"id": "crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L287"}, {"id": "crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L299"}, {"id": "crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L312"}, {"id": "crm_product_generate_barcode", "label": "generate_barcode()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L340"}, {"id": "crm_product_create_product", "label": "create_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L368"}, {"id": "crm_product_update_product", "label": "update_product()", "file_type": "code", "sourLine truncated
|
||||
backend/graphify-out/cache/ast/eb2d69511ac768622bcb47e55a4d0263fb9098409f633b9ab480e8bdec37b7ef.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_crm_models_py", "label": "crm_models.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L1"}, {"id": "models_crm_models_crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L21"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_crm_models_crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L43"}, {"id": "models_crm_models_sysoss", "label": "SysOss", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L76"}, {"id": "models_crm_models_crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L108"}, {"id": "models_crm_models_crmcontact", "label": "CrmContact", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L191"}, {"id": "models_crm_models_crminvoiceinfo", "label": "CrmInvoiceInfo", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L226"}, {"id": "models_crm_models_crmcustomerfollow", "label": "CrmCustomerFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L254"}, {"id": "models_crm_models_crmcustomerpool", "label": "CrmCustomerPool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L285"}, {"id": "models_crm_models_crmcustomerpoolrule", "label": "CrmCustomerPoolRule", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L311"}, {"id": "models_crm_models_crmopportunity", "label": "CrmOpportunity", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L334"}, {"id": "models_crm_models_crmopportunityfollow", "label": "CrmOpportunityFollow", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L377"}, {"id": "models_crm_models_crmopportunityproduct", "label": "CrmOpportunityProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L408"}, {"id": "models_crm_models_crmopportunitystagelog", "label": "CrmOpportunityStageLog", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L438"}, {"id": "models_crm_models_crmcontract", "label": "CrmContract", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L469"}, {"id": "models_crm_models_crmcontractapproval", "label": "CrmContractApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L552"}, {"id": "models_crm_models_crmcontractchange", "label": "CrmContractChange", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L583"}, {"id": "models_crm_models_crmcontracttemplate", "label": "CrmContractTemplate", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L614"}, {"id": "models_crm_models_crmcontractproduct", "label": "CrmContractProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L648"}, {"id": "models_crm_models_crmcontractproductpricetier", "label": "CrmContractProductPriceTier", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L686"}, {"id": "models_crm_models_crmquote", "label": "CrmQuote", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L711"}, {"id": "models_crm_models_crmquoteproduct", "label": "CrmQuoteProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L769"}, {"id": "models_crm_models_crmquoteapproval", "label": "CrmQuoteApproval", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py", "source_location": "L804"}, {"id": "models_crm_models_crmquotesharelog", "label": "CrmQuoteShareLogLine truncated
|
||||
backend/graphify-out/cache/ast/ef1950976cc858bc0d1eba9b31968e736491056a3d15d86079df690662972249.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1"}, {"id": "crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L69"}, {"id": "crm_product_collect_category_with_ancestors", "label": "_collect_category_with_ancestors()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L80"}, {"id": "crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L96"}, {"id": "crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L127"}, {"id": "crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L139"}, {"id": "crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L176"}, {"id": "crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L211"}, {"id": "crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L247"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L247"}, {"id": "crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L267"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L267"}, {"id": "crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L295"}, {"id": "crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L338"}, {"id": "crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L350"}, {"id": "crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L363"}, {"id": "crm_product_generate_barcode", "label": "generate_barcode()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L391"}, {"id": "crm_product_create_product", "label": "create_prLine truncated
|
||||
backend/graphify-out/cache/ast/f8742ffc7e1e8a1607b35600ad917f59a8ca7bb0ff3cc2763ff33e51ffd3afac.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_api_crm_py", "label": "crm.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L1"}, {"id": "api_crm_category_tree", "label": "category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L319"}, {"id": "api_crm_customer_list", "label": "customer_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L339"}, {"id": "customerlistbody", "label": "CustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L339"}, {"id": "api_crm_customer_detail", "label": "customer_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L371"}, {"id": "api_crm_customer_create", "label": "customer_create()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L394"}, {"id": "customercreatebody", "label": "CustomerCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L394"}, {"id": "api_crm_customer_update", "label": "customer_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L423"}, {"id": "customerupdatebody", "label": "CustomerUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L423"}, {"id": "api_crm_customer_delete", "label": "customer_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L448"}, {"id": "customerdeletebody", "label": "CustomerDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L448"}, {"id": "api_crm_customer_generate_no", "label": "customer_generate_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L474"}, {"id": "api_crm_category_add", "label": "category_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490"}, {"id": "productcategorycreatebody", "label": "ProductCategoryCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L490"}, {"id": "api_crm_category_update", "label": "category_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L509"}, {"id": "productcategoryupdatebody", "label": "ProductCategoryUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L509"}, {"id": "api_crm_category_delete", "label": "category_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L528"}, {"id": "categorydeletebody", "label": "CategoryDeleteBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L528"}, {"id": "api_crm_product_list", "label": "product_list()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L547"}, {"id": "productlistbody", "label": "ProductListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L547"}, {"id": "api_crm_product_detail", "label": "product_detail()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "productdetailbody", "label": "ProductDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L581"}, {"id": "api_crm_product_add", "label": "product_add()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L599"}, {"id": "productcreatebody", "label": "ProductCreateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L599"}, {"id": "api_crm_product_update", "label": "product_update()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py", "source_location": "L622"}, {"id": "productupdatebody", "label": "ProductUpdateBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.Line truncated
|
||||
backend/graphify-out/cache/ast/f96258969917f874d76b0576f8e9cc43fa180af388d22dba2133ea28078d8d5d.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_customer_py", "label": "customer.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L1"}, {"id": "crm_customer_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L16"}, {"id": "crm_customer_parse_optional_date", "label": "_parse_optional_date()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "date", "label": "date", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L26"}, {"id": "crm_customer_parse_optional_datetime", "label": "_parse_optional_datetime()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "datetime", "label": "datetime", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L44"}, {"id": "crm_customer_resolve_user_display_name", "label": "_resolve_user_display_name()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L60"}, {"id": "crm_customer_enrich_user_names", "label": "_enrich_user_names()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L70"}, {"id": "crm_customer_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crmcustomer", "label": "CrmCustomer", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L97"}, {"id": "crm_customer_list_customers", "label": "list_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L160"}, {"id": "crm_customer_list_pool_customers", "label": "list_pool_customers()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L269"}, {"id": "crm_customer_get_customer", "label": "get_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L293"}, {"id": "crm_customer_get_customer_by_no", "label": "get_customer_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L304"}, {"id": "crm_customer_generate_customer_no", "label": "generate_customer_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L316"}, {"id": "crm_customer_customer_name_exists", "label": "customer_name_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L342"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L342"}, {"id": "crm_customer_check_duplicate_customer", "label": "check_duplicate_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L355"}, {"id": "crm_customer_create_customer", "label": "create_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L376"}, {"id": "crm_customer_update_customer", "label": "update_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L448"}, {"id": "crm_customer_soft_delete_customer", "label": "soft_delete_customer()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py", "source_location": "L492"}, {"id": "crm_customer_transfer_customer", "label": "traLine truncated
|
||||
backend/graphify-out/cache/ast/fa1cbca5b0b9c7f7799e54d7dd255634bad3e7ead04eefb213032906282da0d3.json
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_product_py", "label": "product.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L1"}, {"id": "crm_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "int", "label": "int", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L19"}, {"id": "crm_product_category_row_to_dict", "label": "_category_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crmproductcategory", "label": "CrmProductCategory", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "any", "label": "Any", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L29"}, {"id": "crm_product_list_categories", "label": "list_categories()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "session", "label": "Session", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L45"}, {"id": "crm_product_build_category_tree", "label": "_build_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L59"}, {"id": "crm_product_list_category_tree", "label": "list_category_tree()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L70"}, {"id": "crm_product_get_category", "label": "get_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L76"}, {"id": "crm_product_create_category", "label": "create_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L88"}, {"id": "crm_product_update_category", "label": "update_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L125"}, {"id": "crm_product_soft_delete_category", "label": "soft_delete_category()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L160"}, {"id": "crm_product_category_code_exists", "label": "category_code_exists()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "bool", "label": "bool", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L196"}, {"id": "crm_product_product_row_to_dict", "label": "_product_row_to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crmproduct", "label": "CrmProduct", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L216"}, {"id": "crm_product_list_products", "label": "list_products()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L239"}, {"id": "crm_product_get_product", "label": "get_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L282"}, {"id": "crm_product_get_product_by_no", "label": "get_product_by_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L294"}, {"id": "crm_product_generate_product_no", "label": "generate_product_no()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L307"}, {"id": "crm_product_generate_barcode", "label": "generate_barcode()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L335"}, {"id": "crm_product_create_product", "label": "create_product()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py", "source_location": "L363"}, {"id": "crm_product_update_product", "label": "update_product()", "file_type": "code", "sourLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":5362,"mtime_ns":1780108930820143914,"hash":"712114b9a96e370660a7d8455b0cb014b6387a352e25c114bb396bc9815d48e6"},"/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":4532,"mtime_ns":1780201410113131199,"hash":"276f225cb323016de117038efef175f4e91a9474bced64b43dc0ea4bd976b057"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":1634,"mtime_ns":1780201410115316494,"hash":"9ee508b67da0044015aff95ebddaf52a5ba551ccfee772bf134ca88e2d482e72"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":8744,"mtime_ns":1780201410112435240,"hash":"df84858ae3cea547e5ae0174a2ee76cd4df8835f4b75827843369e74ea91098b"},"/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":5505,"mtime_ns":1780131767561871048,"hash":"bd8940c34f0feef909d268e6af9fee67705b0a95eae4906ca82e712097e20748"},"/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":8978,"mtime_ns":1780108930724617124,"hash":"198e0861bb9933a7cee510524c4802001543468727a45e779bc4684d0214ffe2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1173,"mtime_ns":1780108930724965209,"hash":"8c45b5a56110164f2488c9c8db27db62fe77f0997cf22c53991c0bd1dde2043a"},"/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":13209,"mtime_ns":1780108930725541087,"hash":"c3138253eb34f65b09f4436e037fb3179d947f84d3b5fef007ed9a8e3bb135ee"},"/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":5949,"mtime_ns":1780108930724890709,"hash":"c92a7dbcfe3d7440bfafc83a76e9ed431e2b054ddd95bc4bfac52b241635ab17"},"/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":11243,"mtime_ns":1780108930724537332,"hash":"0c2045d182138ec8e333356d36d418004a53948e2eda494cd419a36365ebbfae"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4eLine truncated
|
||||
{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":5362,"mtime_ns":1780108930820143914,"hash":"712114b9a96e370660a7d8455b0cb014b6387a352e25c114bb396bc9815d48e6"},"/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":4532,"mtime_ns":1780201410113131199,"hash":"276f225cb323016de117038efef175f4e91a9474bced64b43dc0ea4bd976b057"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":1634,"mtime_ns":1780201410115316494,"hash":"9ee508b67da0044015aff95ebddaf52a5ba551ccfee772bf134ca88e2d482e72"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":8744,"mtime_ns":1780201410112435240,"hash":"df84858ae3cea547e5ae0174a2ee76cd4df8835f4b75827843369e74ea91098b"},"/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":5505,"mtime_ns":1780131767561871048,"hash":"bd8940c34f0feef909d268e6af9fee67705b0a95eae4906ca82e712097e20748"},"/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":8978,"mtime_ns":1780108930724617124,"hash":"198e0861bb9933a7cee510524c4802001543468727a45e779bc4684d0214ffe2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1173,"mtime_ns":1780108930724965209,"hash":"8c45b5a56110164f2488c9c8db27db62fe77f0997cf22c53991c0bd1dde2043a"},"/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":13209,"mtime_ns":1780108930725541087,"hash":"c3138253eb34f65b09f4436e037fb3179d947f84d3b5fef007ed9a8e3bb135ee"},"/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":5949,"mtime_ns":1780108930724890709,"hash":"c92a7dbcfe3d7440bfafc83a76e9ed431e2b054ddd95bc4bfac52b241635ab17"},"/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":11243,"mtime_ns":1780108930724537332,"hash":"0c2045d182138ec8e333356d36d418004a53948e2eda494cd419a36365ebbfae"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4eLine truncated
|
||||
@@ -63,12 +63,12 @@
|
||||
</div>
|
||||
<div id="legend"></div>
|
||||
</div>
|
||||
<div id="stats">2445 nodes · 18243 edges · 92 communities</div>
|
||||
<div id="stats">2643 nodes · 18676 edges · 106 communities</div>
|
||||
</div>
|
||||
<script>
|
||||
const RAW_NODES = [{"id": "start_prod_sh", "label": "start-prod.sh", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.9, "font": {"size": 0, "color": "#ffffff"}, "title": "start-prod.sh", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 13}, {"id": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "label": "start-prod.sh script", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "start-prod.sh script", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 7}, {"id": "backend_start_prod_log_info", "label": "log_info()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_info()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_log_warn", "label": "log_warn()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_warn()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_log_error", "label": "log_error()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_error()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_show_help", "label": "show_help()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "show_help()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 2}, {"id": "backend_start_prod_ensure_dirs", "label": "ensure_dirs()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "ensure_dirs()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 3}, {"id": "backend_start_prod_check_python", "label": "check_python()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "check_python()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_ensure_venv_and_runtime", "label": "ensure_venv_and_runtime()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "ensure_venv_and_runtime()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_is_running", "label": "is_running()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "is_running()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_start_server", "label": "start_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.6, "font": {"size": 0, "color": "#ffffff"}, "title": "start_server()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 9}, {"id": "backend_start_prod_stop_server", "label": "stop_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "stop_server()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_status_server", "label": "status_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "status_server()", "community": 25, "community_name": "Community 25", "source_fiLine truncated
|
||||
const RAW_EDGES = [{"from": "start_prod_sh", "to": "backend_start_prod_check_python", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_ensure_dirs", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_ensure_venv_and_runtime", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_is_running", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_error", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_info", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_warn", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_show_help", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_show_logs", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_start_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_status_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_stop_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_log_error", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_show_help", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_show_logs", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_start_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_status_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_stop_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_check_python", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_start_server", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_stop_server", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_ensure_venv_and_runtime", "to": "backend_start_prod_log_warn", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "conLine truncated
|
||||
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 56}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 100}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 27}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 35}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 43}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 90}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 96}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 48}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 36}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 16}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 56}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 192}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 40}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 216}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 40}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 26}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 33}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 23}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 37}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 24}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 18}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 17}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 22}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 11}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 15}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 14}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 12}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 32}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 20}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 8}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 5}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 2}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 1}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 1}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 1}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 1}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 35}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 10}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 41}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 27}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 34}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 23}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 17}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 19}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 3}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 58}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 63}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 21}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 44}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 23}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 18}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 23}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 18}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 41}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 13}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 17}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 12}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 30}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 3}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 22}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 33}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 31}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 41}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 28}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 15}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 1}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 1}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 15}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 46}, {"cid": 70, "color": "#4E79A7", "label": "Line truncated
|
||||
const RAW_NODES = [{"id": "start_prod_sh", "label": "start-prod.sh", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.9, "font": {"size": 0, "color": "#ffffff"}, "title": "start-prod.sh", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 13}, {"id": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "label": "start-prod.sh script", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "start-prod.sh script", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 7}, {"id": "backend_start_prod_log_info", "label": "log_info()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_info()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_log_warn", "label": "log_warn()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_warn()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_log_error", "label": "log_error()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "log_error()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_show_help", "label": "show_help()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "show_help()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 2}, {"id": "backend_start_prod_ensure_dirs", "label": "ensure_dirs()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "ensure_dirs()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 3}, {"id": "backend_start_prod_check_python", "label": "check_python()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "check_python()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_ensure_venv_and_runtime", "label": "ensure_venv_and_runtime()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "ensure_venv_and_runtime()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_is_running", "label": "is_running()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "is_running()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 4}, {"id": "backend_start_prod_start_server", "label": "start_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.6, "font": {"size": 0, "color": "#ffffff"}, "title": "start_server()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 9}, {"id": "backend_start_prod_stop_server", "label": "stop_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "stop_server()", "community": 25, "community_name": "Community 25", "source_file": "start-prod.sh", "file_type": "code", "degree": 5}, {"id": "backend_start_prod_status_server", "label": "status_server()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "status_server()", "community": 25, "community_name": "Community 25", "source_fiLine truncated
|
||||
const RAW_EDGES = [{"from": "start_prod_sh", "to": "backend_start_prod_check_python", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_ensure_dirs", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_ensure_venv_and_runtime", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_is_running", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_error", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_info", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_log_warn", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_show_help", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_show_logs", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_start_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_status_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "backend_start_prod_stop_server", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "start_prod_sh", "to": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_log_error", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_show_help", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_show_logs", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_start_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_status_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "users_zlwu_work_00code_shanxia2_0_backend_start_prod_sh__entry", "to": "backend_start_prod_stop_server", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_check_python", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_start_server", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_stop_server", "to": "backend_start_prod_log_info", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "backend_start_prod_ensure_venv_and_runtime", "to": "backend_start_prod_log_warn", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "conLine truncated
|
||||
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 44}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 103}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 24}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 35}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 30}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 67}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 95}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 9}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 36}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 16}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 57}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 169}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 85}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 222}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 40}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 26}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 33}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 23}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 37}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 11}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 18}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 17}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 54}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 23}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 15}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 14}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 12}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 21}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 20}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 8}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 5}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 2}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 1}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 1}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 1}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 1}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 34}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 25}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 5}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 27}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 34}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 19}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 17}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 18}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 24}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 77}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 29}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 29}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 54}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 12}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 23}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 23}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 14}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 7}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 22}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 17}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 12}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 26}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 3}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 18}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 33}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 30}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 18}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 30}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 16}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 1}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 1}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 19}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 46}, {"cid": 70, "color": "#4E79A7", "label": "CoLine truncated
|
||||
|
||||
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
|
||||
function esc(s) {
|
||||
|
||||
+8627
-2453
File diff suppressed because it is too large.
Load diff
@@ -1,51 +0,0 @@
|
||||
-- =============================================================================
|
||||
-- 合同管理模块重写 — 增量 DDL
|
||||
-- 对比:docs/sql/sx.sql (CRM) vs docs/sql/shanxia2.0.sql (门户)
|
||||
-- 说明:docs/crm-migration/plans/contract/03-ddl-diff.md
|
||||
-- 日期:2026-05-31
|
||||
-- 执行:在部署库手动执行;索引/唯一键若已存在会报错,可跳过对应语句
|
||||
-- =============================================================================
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- S1. 框架合同产品调价区间(门户原缺失整表)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `crm_contract_product_price_tier` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID(UUID)',
|
||||
`contract_id` varchar(64) NOT NULL COMMENT '合同ID',
|
||||
`contract_product_id` varchar(64) NOT NULL COMMENT '合同产品明细ID',
|
||||
`start_date` date NOT NULL COMMENT '区间开始日期',
|
||||
`end_date` date NOT NULL COMMENT '区间结束日期',
|
||||
`price` decimal(15, 2) NOT NULL COMMENT '含税单价',
|
||||
`letter_oss_ids` varchar(4000) DEFAULT NULL COMMENT '调价函OSS ID列表(JSON数组,如["id1","id2"])',
|
||||
`letter_oss_id` varchar(64) DEFAULT NULL COMMENT '调价函单附件(废弃,请用 letter_oss_ids)',
|
||||
`sort` int(11) DEFAULT '0' COMMENT '排序号',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号(公共)',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建部门',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_contract_id` (`contract_id`) USING BTREE,
|
||||
KEY `idx_contract_product_id` (`contract_product_id`) USING BTREE,
|
||||
KEY `idx_tenant_no` (`tenant_no`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-框架合同产品调价区间';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- S2. crm_contract 列表查询索引(sx 有、门户基线缺)
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE `crm_contract` ADD INDEX `idx_status` (`status`);
|
||||
ALTER TABLE `crm_contract` ADD INDEX `idx_owner_user_id` (`owner_user_id`);
|
||||
ALTER TABLE `crm_contract` ADD INDEX `idx_sign_date` (`sign_date`);
|
||||
ALTER TABLE `crm_contract` ADD INDEX `idx_end_date` (`end_date`);
|
||||
ALTER TABLE `crm_contract` ADD INDEX `idx_create_time` (`create_time`);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- S3. 合同编号租户内唯一(软删维度与 CRM uk_contract_no_del_flag 对齐)
|
||||
-- 若已存在同名或等价唯一索引,执行失败可忽略
|
||||
-- -----------------------------------------------------------------------------
|
||||
ALTER TABLE `crm_contract`
|
||||
ADD UNIQUE KEY `uk_contract_tenant_no_del` (`contract_no`, `tenant_no`, `del_flag`);
|
||||
+5849
-20
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1 @@
|
||||
/Users/zlwu/work/00code/shanxia2.0
|
||||
File diff suppressed because it is too large.
Load diff
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_media_index_js", "label": "index.js", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/media/index.js", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "label": "ContractAttachmentPanel.vue", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L1"}, {"id": "components_contractattachmentpanel_lastdotindex", "label": "lastDotIndex", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L200"}, {"id": "components_contractattachmentpanel_name", "label": "name", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L202"}, {"id": "components_contractattachmentpanel_ext", "label": "ext", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L203"}, {"id": "components_contractattachmentpanel_formdata", "label": "formData", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L236"}, {"id": "components_contractattachmentpanel_if", "label": "if()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L267"}, {"id": "components_contractattachmentpanel_index", "label": "index", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L280"}, {"id": "components_contractattachmentpanel_downloadcrmattachment", "label": "downloadCrmAttachment()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L299"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_lastdotindex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L200", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L202", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_ext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L203", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_formdata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L236", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L267", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_index", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L280", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractattachmentpanel_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/contract/components/ContractAttachmentPanel.vue", "source_location": "L294", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_contract_components_contractattachmentpanel_vue", "target": "components_contractatLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_reference_java_supplier_info_mapper_crmsupplierinfomapper_java", "label": "CrmSupplierInfoMapper.java", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L1"}, {"id": "mapper_crmsupplierinfomapper_crmsupplierinfomapper", "label": "CrmSupplierInfoMapper", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L13"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_reference_java_supplier_info_mapper_crmsupplierinfomapper_java", "target": "basemapperplus", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_reference_java_supplier_info_mapper_crmsupplierinfomapper_java", "target": "crmsupplierinfo", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_reference_java_supplier_info_mapper_crmsupplierinfomapper_java", "target": "crmsupplierinfovo", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_reference_java_supplier_info_mapper_crmsupplierinfomapper_java", "target": "mapper_crmsupplierinfomapper_crmsupplierinfomapper", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/reference/java/supplier-info/mapper/CrmSupplierInfoMapper.java", "source_location": "L13", "weight": 1.0}], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "label": "customer_pool.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L1"}, {"id": "crm_customer_pool_poolcustomerlistbody", "label": "PoolCustomerListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L7"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "crm_customer_pool_poolassignbody", "label": "PoolAssignBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L18"}, {"id": "crm_customer_pool_poolclaimbody", "label": "PoolClaimBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L26"}, {"id": "crm_customer_pool_poolrecordlistbody", "label": "PoolRecordListBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L32"}, {"id": "crm_customer_pool_poolrecorddetailbody", "label": "PoolRecordDetailBody", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L42"}, {"id": "crm_customer_pool_rationale_1", "label": "CRM \u5ba2\u6237\u516c\u6d77\u6c60\u8bb0\u5f55 Pydantic Schemas", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L1"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L2", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "pydantic", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "crm_customer_pool_poolcustomerlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L7", "weight": 1.0}, {"source": "crm_customer_pool_poolcustomerlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "crm_customer_pool_poolassignbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L18", "weight": 1.0}, {"source": "crm_customer_pool_poolassignbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L18", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "crm_customer_pool_poolclaimbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L26", "weight": 1.0}, {"source": "crm_customer_pool_poolclaimbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L26", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "crm_customer_pool_poolrecordlistbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L32", "weight": 1.0}, {"source": "crm_customer_pool_poolrecordlistbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "source_location": "L32", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_schemas_crm_customer_pool_py", "target": "crm_customer_pool_poolrecorddetailbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py", "sourLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_src_views_crm_customer_pool_ruleindex_vue", "label": "RuleIndex.vue", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/views/crm/customer/pool/RuleIndex.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "label": "loading.ts", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L1"}, {"id": "ui_loading_getloadingbackground", "label": "getLoadingBackground()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L37"}, {"id": "ui_loading_default_loading_config", "label": "DEFAULT_LOADING_CONFIG", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L42"}, {"id": "ui_loading_loadinginstance", "label": "LoadingInstance", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L52"}, {"id": "ui_loading_loadingservice", "label": "loadingService", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L58"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "users_zlwu_work_00code_shanxia2_0_web_admin_src_assets_svg_loading_ts", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L31", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "svg_loading_fourdotsspinnersvg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L31", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "ui_loading_getloadingbackground", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L37", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "ui_loading_default_loading_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L42", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "ui_loading_loadinginstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L52", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_ui_loading_ts", "target": "ui_loading_loadingservice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L58", "weight": 1.0}], "raw_calls": [{"caller_nid": "ui_loading_getloadingbackground", "callee": "contains", "is_member_call": true, "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/ui/loading.ts", "source_location": "L38"}]}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_src_utils_http_index_ts", "label": "index.ts", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L1"}, {"id": "http_index_pendingrequests", "label": "pendingRequests", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L40"}, {"id": "http_index_subscribetokenrefresh", "label": "subscribeTokenRefresh()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L45"}, {"id": "http_index_onrefreshed", "label": "onRefreshed()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L49"}, {"id": "http_index_onrefreshfailed", "label": "onRefreshFailed()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L54"}, {"id": "http_index_extendedaxiosrequestconfig", "label": "ExtendedAxiosRequestConfig", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L60"}, {"id": "http_index_api_encrypt_fixed_secret", "label": "API_ENCRYPT_FIXED_SECRET", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L70"}, {"id": "http_index_api_encrypt_exclude_paths", "label": "API_ENCRYPT_EXCLUDE_PATHS", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L71"}, {"id": "http_index_axiosinstance", "label": "axiosInstance", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L78"}, {"id": "http_index_userstore", "label": "userStore", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L101"}, {"id": "http_index_skipreason", "label": "skipReason", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L105"}, {"id": "http_index_originalmethod", "label": "originalMethod", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L112"}, {"id": "http_index_ts", "label": "ts", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L123"}, {"id": "http_index_nonce", "label": "nonce", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L124"}, {"id": "http_index_userid", "label": "userId", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L125"}, {"id": "http_index_plaindata", "label": "plainData", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L127"}, {"id": "http_index_ispublicauthapiurl", "label": "isPublicAuthApiUrl()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L167"}, {"id": "http_index_isblobresponsetype", "label": "isBlobResponseType()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L172"}, {"id": "http_index_isjsonlikeblob", "label": "isJsonLikeBlob()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L176"}, {"id": "http_index_normalizeresponsepayload", "label": "normalizeResponsePayload()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L184"}, {"id": "http_index_createhttperror", "label": "createHttpError()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L245"}, {"id": "http_index_handleunauthorizedresponse", "label": "handleUnauthorizedResponse()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L252"}, {"id": "http_index_triggerlogoutwithdebounce", "label": "triggerLogoutWithDebounce()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L313"}, {"id": "http_index_resetunauthorizederror", "label": "resetUnauthorizedError()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/src/utils/http/index.ts", "source_location": "L323"}, {"id": "http_index_logout", "label": "logOut()", "file_type": "code", "souLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_template_index_js", "label": "index.js", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/template/index.js", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "label": "base.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L1"}, {"id": "models_base_basemodel", "label": "BaseModel", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L10"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_base_tablename", "label": "__tablename__()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L15"}, {"id": "models_base_basemodel_to_dict", "label": ".to_dict()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L29"}, {"id": "models_base_softdeletemodel", "label": "SoftDeleteModel", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L44"}, {"id": "models_base_get_active", "label": "get_active()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L51"}, {"id": "models_base_softdeletemodel_soft_delete", "label": ".soft_delete()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L55"}, {"id": "models_base_softdeletemodel_restore", "label": ".restore()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L60"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L2", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "sqlalchemy_ext_declarative", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "models_base_basemodel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L10", "weight": 1.0}, {"source": "models_base_basemodel", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "models_base_tablename", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L15", "weight": 1.0}, {"source": "models_base_basemodel", "target": "models_base_basemodel_to_dict", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L29", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "models_base_softdeletemodel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L44", "weight": 1.0}, {"source": "models_base_softdeletemodel", "target": "models_base_basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py", "source_location": "L44", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_models_base_py", "target": "models_base_get_active", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py",Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_changelog_zh_cn_md", "label": "CHANGELOG.zh-CN.md", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L1"}, {"id": "web_admin_changelog_zh_cn", "label": "\u66f4\u65b0\u65e5\u5fd7", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L1"}, {"id": "web_admin_changelog_zh_cn_7", "label": "[\u5df2\u53d1\u5e03]", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L7"}, {"id": "web_admin_changelog_zh_cn_v3_0_1_2025_11_15", "label": "v3.0.1 - 2025-11-15", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L9"}, {"id": "web_admin_changelog_zh_cn_11", "label": "\u4fee\u590d", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L11"}, {"id": "web_admin_changelog_zh_cn_16", "label": "\u4f18\u5316", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L16"}, {"id": "web_admin_changelog_zh_cn_25", "label": "\u65b0\u589e", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L25"}, {"id": "web_admin_changelog_zh_cn_38", "label": "\u26a0\ufe0f \u91cd\u8981\u63d0\u793a", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L38"}, {"id": "web_admin_changelog_zh_cn_v3_0_0_2025_11_09", "label": "v3.0.0 - 2025-11-09 \ud83c\udf89", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L44"}, {"id": "web_admin_changelog_zh_cn_46", "label": "\u91cd\u6784", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L46"}, {"id": "web_admin_changelog_zh_cn_54", "label": "\u4f18\u5316", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L54"}, {"id": "web_admin_changelog_zh_cn_64", "label": "\u4fee\u590d", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L64"}, {"id": "web_admin_changelog_zh_cn_68", "label": "\u65b0\u589e", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L68"}, {"id": "web_admin_changelog_zh_cn_73", "label": "\u5347\u7ea7", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L73"}, {"id": "web_admin_changelog_zh_cn_77", "label": "\u26a0\ufe0f \u91cd\u8981\u63d0\u793a", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L77"}, {"id": "web_admin_changelog_zh_cn_v2_6_1_2025_10_19", "label": "v2.6.1 - 2025-10-19", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L83"}, {"id": "web_admin_changelog_zh_cn_85", "label": "\u4fee\u590d", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L85"}, {"id": "web_admin_changelog_zh_cn_92", "label": "\u4f18\u5316", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L92"}, {"id": "web_admin_changelog_zh_cn_v2_6_0_2025_10_16", "label": "v2.6.0 - 2025-10-16", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L100"}, {"id": "web_admin_changelog_zh_cn_102", "label": "\u65b0\u589e", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L102"}, {"id": "web_admin_changelog_zh_cn_106", "label": "\u4f18\u5316", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L106"}, {"id": "web_admin_changelog_zh_cn_117", "label": "\u4fee\u590d", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L117"}, {"id": "web_admin_changelog_zh_cn_124", "label": "\u26a0\ufe0f \u91cd\u8981\u63d0\u793a", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "source_location": "L124"}, {"id": "web_admin_changelog_zh_cn_v2_5_9_2025_10_12", "label": "v2.5.9 - 2025-10-12", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/CHANGELOG.zh-CN.md", "souLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_readme_md", "label": "README.md", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L1"}, {"id": "backend_readme_shanxia2_0_fastapi", "label": "shanxia2.0 \u540e\u7aef\u9aa8\u67b6\uff08FastAPI\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L1"}, {"id": "backend_readme", "label": "\u6280\u672f\u6808", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L7"}, {"id": "backend_readme_15", "label": "\u9879\u76ee\u7ed3\u6784", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L15"}, {"id": "backend_readme_codeblock_1", "label": "code:block1 (backend/)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L17"}, {"id": "backend_readme_37", "label": "\u5feb\u901f\u5f00\u59cb", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L37"}, {"id": "backend_readme_1", "label": "1. \u521b\u5efa\u865a\u62df\u73af\u5883", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L39"}, {"id": "backend_readme_codeblock_2", "label": "code:bash (python -m venv venv)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L41"}, {"id": "backend_readme_2", "label": "2. \u5b89\u88c5\u4f9d\u8d56", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L47"}, {"id": "backend_readme_codeblock_3", "label": "code:bash (pip install -r requirements.txt)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L49"}, {"id": "backend_readme_3", "label": "3. \u914d\u7f6e\u73af\u5883\u53d8\u91cf", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L53"}, {"id": "backend_readme_codeblock_4", "label": "code:env (# \u6570\u636e\u5e93\u914d\u7f6e)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L57"}, {"id": "backend_readme_4", "label": "4. \u542f\u52a8\u670d\u52a1", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L71"}, {"id": "backend_readme_codeblock_5", "label": "code:bash (uvicorn app.main:app --reload --port 8000)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L73"}, {"id": "backend_readme_api", "label": "API \u8def\u7531\u5206\u7ec4", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L83"}, {"id": "backend_readme_93", "label": "\u5f00\u53d1\u89c4\u8303", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L93"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_readme_md", "target": "backend_readme_shanxia2_0_fastapi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L1", "weight": 1.0}, {"source": "backend_readme_shanxia2_0_fastapi", "target": "backend_readme", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L7", "weight": 1.0}, {"source": "backend_readme_shanxia2_0_fastapi", "target": "backend_readme_15", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L15", "weight": 1.0}, {"source": "backend_readme_15", "target": "backend_readme_codeblock_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L17", "weight": 1.0}, {"source": "backend_readme_shanxia2_0_fastapi", "target": "backend_readme_37", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L37", "weight": 1.0}, {"source": "backend_readme_37", "target": "backend_readme_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L39", "weight": 1.0}, {"source": "backend_readme_1", "target": "backend_readme_codeblock_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/README.md", "source_location": "L41", "weight": 1.0}, {"source": "backend_readme_37", "target": "backend_readme_2", "rLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "label": "statistics.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L1"}, {"id": "crm_statistics_get_overview_statistics", "label": "get_overview_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L13"}, {"id": "crm_statistics_get_source_statistics", "label": "get_source_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L38"}, {"id": "crm_statistics_get_level_statistics", "label": "get_level_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L52"}, {"id": "crm_statistics_get_industry_statistics", "label": "get_industry_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L66"}, {"id": "crm_statistics_get_trend_statistics", "label": "get_trend_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L80"}, {"id": "crm_statistics_get_owner_statistics", "label": "get_owner_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L104"}, {"id": "crm_statistics_get_follow_statistics", "label": "get_follow_statistics()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L121"}, {"id": "crm_statistics_rationale_16", "label": "\u5ba2\u6237\u7edf\u8ba1\u6982\u89c8\uff1a\u5ba2\u6237\u603b\u6570\u3001\u516c\u6d77\u6c60\u6570\u3001\u672c\u6708\u65b0\u589e\u3001\u6210\u4ea4\u6570", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L16"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L4", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "typing", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "sqlalchemy", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L10", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "crm_statistics_get_overview_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L13", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "crm_statistics_get_source_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L38", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "crm_statistics_get_level_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L52", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_crud_crm_statistics_py", "target": "crm_statistics_get_industry_statistics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py", "source_location": "L66", "weight": 1.0}, {"source": "users_zlwu_work_0Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_docs_crm_migration_plans_contract_02_business_logic_md", "label": "02-business-logic.md", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L1"}, {"id": "contract_02_business_logic_02", "label": "\u5408\u540c\u7ba1\u7406 \u2014 02 \u4e1a\u52a1\u903b\u8f91\uff08\u5217\u8868\u67e5\u8be2\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L1"}, {"id": "contract_02_business_logic_1", "label": "1. \u8c03\u7528\u94fe", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L9"}, {"id": "contract_02_business_logic_codeblock_1", "label": "code:block1 (index.vue getList())", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L11"}, {"id": "contract_02_business_logic_2_tab_query", "label": "2. \u5217\u8868 Tab \u4e0e Query \u53c2\u6570\u6620\u5c04", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L29"}, {"id": "contract_02_business_logic_codeblock_2", "label": "code:mermaid (flowchart LR)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L46"}, {"id": "contract_02_business_logic_3_buildquerywrapper", "label": "3. `buildQueryWrapper` \u6761\u4ef6\u9010\u9879\u8bf4\u660e", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L73"}, {"id": "contract_02_business_logic_3_1_or_vs_and", "label": "3.1 \u6587\u672c\u641c\u7d22\uff1a\u8054\u5408 OR vs \u5206\u522b AND", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L80"}, {"id": "contract_02_business_logic_codeblock_3", "label": "code:ts (queryParams.contractNo = queryParams.contractName = queryPar)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L90"}, {"id": "contract_02_business_logic_codeblock_4", "label": "code:python (if ()", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L97"}, {"id": "contract_02_business_logic_3_2", "label": "3.2 \u7cbe\u786e\u5339\u914d\u5b57\u6bb5", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L112"}, {"id": "contract_02_business_logic_3_3_excludestatus", "label": "3.3 \u6392\u9664\u72b6\u6001 `excludeStatus`", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L124"}, {"id": "contract_02_business_logic_codeblock_5", "label": "code:java (lqw.ne(StringUtils.isNotBlank(bo.getExcludeStatus()), CrmCon)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L126"}, {"id": "contract_02_business_logic_3_4", "label": "3.4 \u91d1\u989d\u533a\u95f4", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L141"}, {"id": "contract_02_business_logic_3_5_signdatebegin_signdateend", "label": "3.5 \u7b7e\u8ba2\u65e5\u671f `signDateBegin` / `signDateEnd`", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L150"}, {"id": "contract_02_business_logic_3_6_begintime_endtime", "label": "3.6 \u521b\u5efa\u65f6\u95f4 `beginTime` / `endTime`", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L159"}, {"id": "contract_02_business_logic_codeblock_6", "label": "code:java (lqw.between(beginTime != null && endTime != null, create_tim)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L161"}, {"id": "contract_02_business_logic_4_tab", "label": "4. \u5ba1\u6279\u76f8\u5173\u5b50\u67e5\u8be2\uff08Tab \u6838\u5fc3\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/crm-migration/plans/contract/02-business-logic.md", "source_location": "L169"}, {"id": "contract_02_busiLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_docs_superpowers_plans_2026_05_30_shanxia2_0_project_cleanup_md", "label": "2026-05-30-shanxia2.0-project-cleanup.md", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L1"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_tag", "label": "\u5c71\u5ce1\u5316\u5de5\u751f\u4ea7\u4e00\u4f53\u5316\u95e8\u6237 \u2014 \u5de5\u7a0b\u6e05\u7406 + Tag \u96c6\u4e2d\u5316\u5b9e\u65bd\u8ba1\u5212", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L1"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup", "label": "\u80cc\u666f\u4e0e\u76ee\u6807", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L5"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_12", "label": "\u4fdd\u7559\u6e05\u5355", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L12"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_14", "label": "\u540e\u7aef\u4fdd\u7559", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L14"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_21", "label": "\u524d\u7aef\u4fdd\u7559", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L21"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_27", "label": "\u5220\u9664\u6e05\u5355", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L27"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_39", "label": "\u5b9e\u65bd\u4efb\u52a1", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L39"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_phase_1", "label": "Phase 1: \u6570\u636e\u5e93\u5c42\u53d8\u66f4", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L41"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_task_1_1_sys_dict_data_tag_type", "label": "Task 1.1: sys_dict_data \u8868\u65b0\u589e tag_type \u5b57\u6bb5", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L43"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_codeblock_1", "label": "code:sql (ALTER TABLE `sys_dict_data`)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L45"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_task_1_2", "label": "Task 1.2: \u5b57\u5178\u79cd\u5b50\u6570\u636e\u521d\u59cb\u5316", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L53"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_task_1_3", "label": "Task 1.3: \u6e05\u7406\u6570\u636e\u5e93\u4e1a\u52a1\u8868\uff08\u751f\u6210\u811a\u672c\uff0c\u4e0d\u81ea\u52a8\u6267\u884c\uff09", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L75"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_phase_2", "label": "Phase 2: \u540e\u7aef\u6e05\u7406", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L83"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_task_2_1_api", "label": "Task 2.1: \u6e05\u7406\u540e\u7aef API \u8def\u7531\u6587\u4ef6", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L85"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_codeblock_2", "label": "code:block2 (backend/app/api/basic_info.py)", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpowers/plans/2026-05-30-shanxia2.0-project-cleanup.md", "source_location": "L87"}, {"id": "plans_2026_05_30_shanxia2_0_project_cleanup_task_2_2", "label": "Task 2.2: \u6e05\u7406\u540e\u7aef\u6a21\u578b\u6587\u4ef6", "file_type": "document", "source_file": "/Users/zlwu/work/00code/shanxia2.0/docs/superpoLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_help_js_i18n_keynav_fr_fr_js", "label": "fr_FR.js", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/help/js/i18n/keynav/fr_FR.js", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_wordcount_plugin_min_js", "label": "plugin.min.js", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L1"}, {"id": "wordcount_plugin_min_n", "label": "n()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_o", "label": "o()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_m", "label": "m", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_w", "label": "w", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_f", "label": "f()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_x", "label": "x()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_s", "label": "S()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_b", "label": "b()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_v", "label": "v()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_t", "label": "T()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_a", "label": "A()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_d", "label": "D()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_j", "label": "j()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_k", "label": "k()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_u", "label": "U()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}, {"id": "wordcount_plugin_min_e", "label": "e()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_wordcount_plugin_min_js", "target": "wordcount_plugin_min_n", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_wordcount_plugin_min_js", "target": "wordcount_plugin_min_o", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_wordcount_plugin_min_js", "target": "wordcount_plugin_min_m", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_web_admin_public_tinymce_plugins_wordcount_plugin_min_js", "target": "wordcount_plugin_min_w", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/web-admin/public/tinymce/plugins/wordcount/plugin.min.js", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_0Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "label": "customer_pool.py", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L1"}, {"id": "tasks_customer_pool_check_customer_protect_time", "label": "check_customer_protect_time()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L17"}, {"id": "tasks_customer_pool_remind_customer_recycle", "label": "remind_customer_recycle()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L66"}, {"id": "tasks_customer_pool_pool_recovery_job", "label": "pool_recovery_job()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L112"}, {"id": "tasks_customer_pool_warn_customer_recycle", "label": "warn_customer_recycle()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L152"}, {"id": "tasks_customer_pool_recycle_to_pool", "label": "_recycle_to_pool()", "file_type": "code", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L225"}, {"id": "tasks_customer_pool_rationale_18", "label": "\u6bcf\u5929\u51cc\u66681\u70b9\uff1a\u68c0\u67e5\u4fdd\u62a4\u671f\u5230\u671f\u5ba2\u6237\uff0c\u8ddf\u8fdb\u6b21\u6570\u4e0d\u8db3\u5219\u9000\u56de\u516c\u6d77", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L18"}, {"id": "tasks_customer_pool_rationale_67", "label": "\u6bcf\u5929\u65e9\u4e0a9\u70b9\uff1a\u4fdd\u62a4\u671f\u5230\u671f\u63d0\u9192\uff083\u5929\u5185\u5230\u671f\u4e14\u8ddf\u8fdb\u4e0d\u8db3\uff09", "file_type": "rationale", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L67"}], "edges": [{"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L2", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "datetime", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L3", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "sqlalchemy_orm", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L5", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "app_core_database", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L7", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "app_core_utils", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L8", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "app_models_crm_models", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L9", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "tasks_customer_pool_check_customer_protect_time", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L17", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "tasks_customer_pool_remind_customer_recycle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L66", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasks_customer_pool_py", "target": "tasks_customer_pool_pool_recovery_job", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py", "source_location": "L112", "weight": 1.0}, {"source": "users_zlwu_work_00code_shanxia2_0_backend_app_tasLine truncated
|
||||
Loaded 100 of 906 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user