diff --git a/backend/app.pid b/backend/app.pid
index d5d0496cf..bf49d69d4 100644
--- a/backend/app.pid
+++ b/backend/app.pid
@@ -1 +1 @@
-12399
+8708
diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py
index 16eab9961..c247f09f3 100644
--- a/backend/app/api/admin.py
+++ b/backend/app/api/admin.py
@@ -1407,3 +1407,22 @@ def attachment_download_url(
return success_response({"downloadUrl": url})
except Exception as e:
return error_response(500, f"获取下载链接失败: {str(e)}")
+
+
+@router.post("/attachment/preview-url")
+def attachment_preview_url(
+ body: AttachmentDownloadUrlBody,
+ user: dict = Depends(require_admin_or_super_admin),
+ db: Session = Depends(get_db),
+):
+ """返回用于浏览器内联预览的 URL(PDF iframe 等)。"""
+ file_url = (body.file_url or "").strip()
+ if not file_url:
+ return error_response(400, "文件地址不能为空")
+ tenant_no = _get_tenant_no(db, user)
+ oss_svc.get_oss_by_url(db, tenant_no, file_url)
+ try:
+ url = storage.presigned_preview_url(file_url)
+ return success_response({"previewUrl": url})
+ except Exception as e:
+ return error_response(500, f"获取预览链接失败: {str(e)}")
diff --git a/backend/app/api/crm.py b/backend/app/api/crm.py
index b9a688237..0b762edbe 100644
--- a/backend/app/api/crm.py
+++ b/backend/app/api/crm.py
@@ -784,20 +784,17 @@ 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
model = str(row[3]).strip() if row[3] else None
- unit = str(row[4]).strip() if row[4] else "件"
- price = row[5] if row[5] is not None else 0
- cost_price = row[6] if row[6] is not None else None
- status = str(row[7]).strip() if row[7] else "on"
+ status = str(row[4]).strip() if row[4] else "on"
if status == "1":
status = "on"
elif status == "0":
status = "off"
- remark = str(row[8]).strip() if row[8] else None
+ remark = str(row[5]).strip() if row[5] else None
# 必填校验
if not product_name:
@@ -828,9 +825,6 @@ def product_import(
category_id=category_id,
category_name=category_name,
model=model,
- unit=unit,
- price=price,
- cost_price=cost_price,
status=status,
remark=remark,
)
@@ -901,9 +895,6 @@ def product_import_template(
"产品名称",
"分类名称",
"规格型号",
- "单位",
- "标准单价",
- "成本价",
"状态(on上架/off下架)",
"备注",
]
diff --git a/backend/app/core/storage.py b/backend/app/core/storage.py
index c0f07ddd2..0891ec158 100644
--- a/backend/app/core/storage.py
+++ b/backend/app/core/storage.py
@@ -83,6 +83,10 @@ class BaseStorage:
"""带下载文件名的访问 URL;默认实现为普通访问地址。"""
return self.get_url(file_path)
+ def presigned_preview_url(self, file_path: str, expires_seconds: int = 3600) -> str:
+ """浏览器内联预览 URL;默认实现为普通访问地址。"""
+ return self.get_url(file_path)
+
class LocalStorage(BaseStorage):
"""本地存储"""
@@ -357,6 +361,21 @@ class MinIOStorage(BaseStorage):
response_headers={"response-content-disposition": disposition},
)
+ def presigned_preview_url(self, file_path: str, expires_seconds: int = 3600) -> str:
+ """MinIO 预签名内联预览 URL(PDF 等 iframe 场景)。"""
+ key = self._extract_object_key(file_path)
+ if not key:
+ raise ValueError("无效的文件路径")
+ response_headers: dict[str, str] = {"response-content-disposition": "inline"}
+ if key.lower().endswith(".pdf"):
+ response_headers["response-content-type"] = "application/pdf"
+ return self.client.presigned_get_object(
+ bucket_name=self.bucket_name,
+ object_name=key,
+ expires=timedelta(seconds=expires_seconds),
+ response_headers=response_headers,
+ )
+
def get_storage() -> BaseStorage:
"""获取存储实例"""
diff --git a/backend/app/crud/crm/product.py b/backend/app/crud/crm/product.py
index fc5da5a58..e7f7c26dd 100644
--- a/backend/app/crud/crm/product.py
+++ b/backend/app/crud/crm/product.py
@@ -284,6 +284,7 @@ def category_code_exists(
def _product_row_to_dict(row: CrmProduct) -> Dict[str, Any]:
"""产品 ORM 对象转 dict(camelCase 键名)"""
+ unit = (row.unit or "").strip()
return {
"id": row.id,
"productNo": row.product_no,
@@ -291,11 +292,11 @@ def _product_row_to_dict(row: CrmProduct) -> Dict[str, Any]:
"categoryId": row.category_id or "",
"categoryName": row.category_name or "",
"model": row.model or "",
- "unit": row.unit,
+ "unit": unit or None,
"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,
+ "price": float(row.price) if row.price is not None else None,
+ "costPrice": float(row.cost_price) if row.cost_price is not None else None,
+ "cost": float(row.cost_price) if row.cost_price is not None else None,
"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,
@@ -472,10 +473,10 @@ def create_product(
category_id=category_id,
category_name=category_name or "",
model=kwargs.get("model"),
- unit=kwargs.get("unit", "件"),
+ unit=_normalize_text(kwargs.get("unit")) or None,
barcode=barcode,
- price=kwargs.get("price", 0),
- cost_price=kwargs.get("cost_price"),
+ price=kwargs.get("price") if "price" in kwargs else None,
+ cost_price=kwargs.get("cost_price") if "cost_price" in kwargs else None,
stock=kwargs.get("stock", 0),
low_stock=kwargs.get("low_stock", 10),
tax_rate=kwargs.get("tax_rate", Decimal("13.00")),
@@ -635,7 +636,7 @@ def list_product_options(
"label": r.product_name,
"value": r.id,
"productNo": r.product_no,
- "price": float(r.price) if r.price else 0.0,
+ "price": float(r.price) if r.price is not None else None,
}
for r in rows
]
@@ -777,7 +778,7 @@ def resolve_product_id_for_quote_item(
if not product_name:
raise ValueError("产品名称不能为空")
model = _normalize_text(_get_quote_item_field(product_data, "model"))
- unit = _normalize_text(_get_quote_item_field(product_data, "unit")) or "件"
+ unit = _normalize_text(_get_quote_item_field(product_data, "unit"))
category_id = (_get_quote_item_field(product_data, "category_id", "categoryId") or "").strip() or None
name_key = product_name.lower()
@@ -819,8 +820,8 @@ def resolve_product_id_for_quote_item(
category_id=category_id,
category_name=category_name_val or "",
model=model,
- unit=unit,
- price=Decimal("0"),
+ unit=unit or None,
+ price=None,
status="on",
tenant_no=tenant_no,
create_by=user_id,
diff --git a/backend/app/models/crm_models.py b/backend/app/models/crm_models.py
index d6ba3b486..1a78c9b87 100644
--- a/backend/app/models/crm_models.py
+++ b/backend/app/models/crm_models.py
@@ -51,10 +51,10 @@ class CrmProduct(Base):
category_id = Column(String(64), nullable=True, comment="分类ID")
category_name = Column(String(100), nullable=True, comment="分类名称(冗余)")
model = Column(String(100), nullable=True, comment="规格型号")
- unit = Column(String(20), nullable=False, default="件", comment="单位")
+ unit = Column(String(20), nullable=True, default=None, 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="成本价")
+ price = Column(DECIMAL(15, 2), nullable=True, default=None, comment="标准单价")
+ cost_price = Column(DECIMAL(15, 2), nullable=True, default=None, 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="税率(百分比)")
diff --git a/backend/app/schemas/crm/product.py b/backend/app/schemas/crm/product.py
index 5ffceafc3..d7ac36edb 100644
--- a/backend/app/schemas/crm/product.py
+++ b/backend/app/schemas/crm/product.py
@@ -76,9 +76,9 @@ class ProductCreateBody(BaseModel):
category_id: Optional[str] = Field(default=None, alias="categoryId", description="分类ID")
category_name: Optional[str] = Field(default=None, alias="categoryName", description="分类名称")
model: Optional[str] = Field(default=None, description="规格型号")
- unit: str = Field(default="件", description="单位")
+ unit: Optional[str] = Field(default=None, description="单位(产品模块不维护,留空)")
barcode: Optional[str] = Field(default=None, description="条码(不传则自动生成)")
- price: Decimal = Field(default=Decimal("0.00"), description="标准单价")
+ price: Optional[Decimal] = Field(default=None, description="标准单价(产品模块不维护,留空)")
cost_price: Optional[Decimal] = Field(
default=None,
validation_alias=AliasChoices("costPrice", "cost"),
diff --git a/backend/app/schemas/pl/freight.py b/backend/app/schemas/pl/freight.py
index 11f0e3746..66fdcfd86 100644
--- a/backend/app/schemas/pl/freight.py
+++ b/backend/app/schemas/pl/freight.py
@@ -41,6 +41,9 @@ class FreightSettlementUpdate(BaseModel):
invoice_date: Optional[date] = Field(default=None, alias="invoiceDate")
invoice_attachment_urls: Optional[str] = Field(default=None, alias="invoiceAttachmentUrls")
remark: Optional[str] = None
+ transport_ids: Optional[list[str]] = Field(
+ default=None, alias="transportIds", description="关联运输ID全量列表,仅草稿可更新"
+ )
model_config = {"populate_by_name": True}
@@ -93,6 +96,12 @@ class UnsettledPlanItem(BaseModel):
transport_company: Optional[str] = Field(default=None, alias="transportCompany")
freight_amount: Decimal = Field(default=Decimal("0"), alias="freightAmount")
archive_time: Optional[datetime] = Field(default=None, alias="archiveTime")
+ transport_id: str = Field(alias="transportId")
+ transport_no: Optional[str] = Field(default=None, alias="transportNo")
+ driver_name: Optional[str] = Field(default=None, alias="driverName")
+ transport_medium: Optional[str] = Field(default=None, alias="transportMedium")
+ start_point: Optional[str] = Field(default=None, alias="startPoint")
+ end_point: Optional[str] = Field(default=None, alias="endPoint")
model_config = {"populate_by_name": True}
diff --git a/backend/app/services/pl_freight_settlement_service.py b/backend/app/services/pl_freight_settlement_service.py
index 294953e93..75a77088e 100644
--- a/backend/app/services/pl_freight_settlement_service.py
+++ b/backend/app/services/pl_freight_settlement_service.py
@@ -30,8 +30,10 @@ from app.schemas.pl.freight import (
_FMT = "%Y-%m-%d %H:%M:%S"
+_DRAFT_SETTLEMENT_STATUSES = ("pending", "rejected")
+
TAB_STATUS_MAP = {
- "bills": ("pending", "approving", "approved", "confirmed", "cancelled"),
+ "bills": ("pending", "rejected", "approving", "approved", "confirmed", "cancelled"),
"approval_pending": ("approving",),
"approval_done": ("approved", "confirmed"),
"disburse": ("approved",),
@@ -200,6 +202,12 @@ def list_unsettled_plans(
"transportCompany": transport.carrier_name,
"freightAmount": plan.freight_amount or transport.freight_amount,
"archiveTime": plan.update_time,
+ "transportId": transport.id,
+ "transportNo": transport.transport_no,
+ "driverName": transport.driver_name,
+ "transportMedium": transport.transport_medium,
+ "startPoint": transport.start_point,
+ "endPoint": transport.end_point,
}
)
return total, items
@@ -299,12 +307,143 @@ def create_settlement(
return settlement
+def _recalc_settlement_total_freight_from_links(
+ db: Session,
+ settlement_id: str,
+ *,
+ user_id: str,
+ now: Optional[datetime] = None,
+) -> None:
+ # SessionLocal 关闭了 autoflush,须先 flush 再聚合查询,否则 SUM 仍读到旧明细金额
+ db.flush()
+ total = (
+ db.query(func.coalesce(func.sum(PlFreightSettlementTransport.freight_amount), 0))
+ .filter(
+ PlFreightSettlementTransport.settlement_id == settlement_id,
+ PlFreightSettlementTransport.del_flag == 0,
+ )
+ .scalar()
+ )
+ settlement = (
+ db.query(PlFreightSettlement)
+ .filter(
+ PlFreightSettlement.id == settlement_id,
+ PlFreightSettlement.del_flag == 0,
+ )
+ .first()
+ )
+ if not settlement:
+ return
+ ts = now or datetime.now()
+ settlement.total_freight = Decimal(str(total or 0))
+ settlement.update_by = user_id
+ settlement.update_time = ts
+
+
+def sync_draft_settlement_freight_for_transport(
+ db: Session,
+ *,
+ tenant_no: str,
+ transport_id: str,
+ freight_amount: Decimal,
+ user_id: str,
+) -> None:
+ """运输单运费变更后,同步关联草稿结算单的明细快照与合计。"""
+ tid = (transport_id or "").strip()
+ if not tid:
+ return
+
+ links = (
+ db.query(PlFreightSettlementTransport)
+ .join(
+ PlFreightSettlement,
+ PlFreightSettlement.id == PlFreightSettlementTransport.settlement_id,
+ )
+ .filter(
+ PlFreightSettlementTransport.transport_id == tid,
+ PlFreightSettlementTransport.tenant_no == tenant_no,
+ PlFreightSettlementTransport.del_flag == 0,
+ PlFreightSettlement.tenant_no == tenant_no,
+ PlFreightSettlement.del_flag == 0,
+ PlFreightSettlement.settlement_status.in_(_DRAFT_SETTLEMENT_STATUSES),
+ )
+ .all()
+ )
+ if not links:
+ return
+
+ now = datetime.now()
+ amount = Decimal(str(freight_amount or 0))
+ settlement_ids = set()
+ for link in links:
+ link.freight_amount = amount
+ link.update_by = user_id
+ link.update_time = now
+ settlement_ids.add(link.settlement_id)
+
+ for settlement_id in settlement_ids:
+ _recalc_settlement_total_freight_from_links(
+ db, settlement_id, user_id=user_id, now=now
+ )
+
+
+def refresh_draft_settlement_freight(
+ db: Session,
+ settlement: PlFreightSettlement,
+ *,
+ user_id: str = "",
+) -> bool:
+ """草稿/已驳回结算单按当前运输单运费刷新明细快照与合计。"""
+ if settlement.settlement_status not in _DRAFT_SETTLEMENT_STATUSES:
+ return False
+
+ links = (
+ db.query(PlFreightSettlementTransport)
+ .filter(
+ PlFreightSettlementTransport.settlement_id == settlement.id,
+ PlFreightSettlementTransport.del_flag == 0,
+ )
+ .all()
+ )
+ if not links:
+ return False
+
+ transport_ids = [link.transport_id for link in links]
+ transports = {
+ t.id: t
+ for t in db.query(PlTransport)
+ .filter(PlTransport.id.in_(transport_ids), PlTransport.del_flag == 0)
+ .all()
+ }
+
+ old_total = Decimal(str(settlement.total_freight or 0))
+ now = datetime.now()
+ changed = False
+ for link in links:
+ transport = transports.get(link.transport_id)
+ if not transport:
+ continue
+ new_amount = Decimal(str(transport.freight_amount or 0))
+ if Decimal(str(link.freight_amount or 0)) != new_amount:
+ link.freight_amount = new_amount
+ link.update_time = now
+ if user_id:
+ link.update_by = user_id
+ changed = True
+
+ _recalc_settlement_total_freight_from_links(
+ db, settlement.id, user_id=user_id, now=now
+ )
+ new_total = Decimal(str(settlement.total_freight or 0))
+ return changed or new_total != old_total
+
+
def delete_draft_settlement(
db: Session, *, tenant_no: str, settlement_id: str, user_id: str, user=None
) -> None:
settlement = get_settlement_row(db, tenant_no, settlement_id, user=user)
- if settlement.settlement_status != "pending":
- raise HTTPException(status_code=400, detail="仅草稿结算单可删除")
+ if settlement.settlement_status not in _DRAFT_SETTLEMENT_STATUSES:
+ raise HTTPException(status_code=400, detail="仅草稿或已驳回结算单可删除")
if user:
assert_row_deletable_by_creator(settlement, user_info_from_context(user))
@@ -335,8 +474,8 @@ def cancel_draft_settlement(
db: Session, *, tenant_no: str, settlement_id: str, user_id: str, user=None
) -> PlFreightSettlement:
settlement = get_settlement_row(db, tenant_no, settlement_id, user=user)
- if settlement.settlement_status != "pending":
- raise HTTPException(status_code=400, detail="仅草稿结算单可作废")
+ if settlement.settlement_status not in _DRAFT_SETTLEMENT_STATUSES:
+ raise HTTPException(status_code=400, detail="仅草稿或已驳回结算单可作废")
if user:
assert_row_deletable_by_creator(settlement, user_info_from_context(user))
@@ -591,7 +730,7 @@ def _advance_after_approval(
) -> None:
now = datetime.now()
if result == "rejected":
- settlement.settlement_status = "pending"
+ settlement.settlement_status = "rejected"
settlement.update_time = now
others = (
db.query(PlFreightSettlementApproval)
@@ -674,8 +813,8 @@ def submit_settlement_approval(
user=None,
) -> PlFreightSettlement:
settlement = get_settlement_row(db, tenant_no, settlement_id, user=user)
- if settlement.settlement_status != "pending":
- raise HTTPException(status_code=400, detail="仅草稿状态可提交审批")
+ if settlement.settlement_status not in _DRAFT_SETTLEMENT_STATUSES:
+ raise HTTPException(status_code=400, detail="仅草稿或已驳回状态可提交审批")
settlement.settlement_status = "approving"
if body.remark:
@@ -991,12 +1130,15 @@ def list_settlements_enriched(
.all()
)
status_fixed = False
+ freight_fixed = False
for row in rows:
if _sync_settlement_status_if_approval_complete(db, row):
status_fixed = True
if _sync_settlement_status_if_disbursed(db, row):
status_fixed = True
- if status_fixed:
+ if refresh_draft_settlement_freight(db, row, user_id=user_id):
+ freight_fixed = True
+ if status_fixed or freight_fixed:
db.commit()
for row in rows:
db.refresh(row)
@@ -1018,6 +1160,9 @@ def get_settlement_detail(
if _sync_settlement_status_if_disbursed(db, settlement):
db.commit()
db.refresh(settlement)
+ if refresh_draft_settlement_freight(db, settlement, user_id=user_id):
+ db.commit()
+ db.refresh(settlement)
base = enrich_settlement_list_item(db, settlement, user_id)
transport_ids = _get_transport_ids(db, settlement_id)
@@ -1089,6 +1234,122 @@ def get_settlement_detail(
return base
+def _validate_transports_for_settlement_update(
+ db: Session,
+ *,
+ tenant_no: str,
+ settlement_id: str,
+ transport_ids: List[str],
+) -> List[PlTransport]:
+ cleaned = list(dict.fromkeys([tid.strip() for tid in transport_ids if (tid or "").strip()]))
+ if not cleaned:
+ raise HTTPException(status_code=400, detail="至少保留一条关联运输")
+
+ transports = (
+ db.query(PlTransport)
+ .filter(
+ PlTransport.id.in_(cleaned),
+ PlTransport.tenant_no == tenant_no,
+ PlTransport.del_flag == 0,
+ )
+ .all()
+ )
+ if len(transports) != len(cleaned):
+ raise HTTPException(status_code=400, detail="存在无效的运输单")
+
+ transport_map = {t.id: t for t in transports}
+ current_ids = set(_get_transport_ids(db, settlement_id))
+ added_ids = [tid for tid in cleaned if tid not in current_ids]
+
+ if added_ids:
+ occupied = {r[0] for r in _occupied_transport_ids_subquery(db, tenant_no).all()}
+ conflict = [tid for tid in added_ids if tid in occupied]
+ if conflict:
+ raise HTTPException(status_code=400, detail="所选运输单已纳入其他结算单")
+
+ plans = (
+ db.query(PlPlan)
+ .filter(
+ PlPlan.tenant_no == tenant_no,
+ PlPlan.del_flag == 0,
+ PlPlan.transport_id.in_(added_ids),
+ )
+ .all()
+ )
+ plan_by_transport = {p.transport_id: p for p in plans if p.transport_id}
+ for tid in added_ids:
+ plan = plan_by_transport.get(tid)
+ if not plan:
+ raise HTTPException(status_code=400, detail="存在未关联计划的运输单")
+ if plan.archive_status != "archived":
+ raise HTTPException(status_code=400, detail=f"计划 {plan.plan_no} 未归档,不能结算")
+ if int(plan.has_freight or 0) != 1:
+ raise HTTPException(status_code=400, detail=f"计划 {plan.plan_no} 无运输费用")
+ if plan.follow_status == "cancelled":
+ raise HTTPException(status_code=400, detail=f"计划 {plan.plan_no} 已作废")
+ amount = Decimal(str(transport_map[tid].freight_amount or 0))
+ if amount <= 0:
+ raise HTTPException(status_code=400, detail=f"运输单 {transport_map[tid].transport_no} 运费无效")
+
+ return [transport_map[tid] for tid in cleaned]
+
+
+def _sync_settlement_transport_links(
+ db: Session,
+ *,
+ tenant_no: str,
+ settlement_id: str,
+ transport_ids: List[str],
+ transports: List[PlTransport],
+ user_id: str,
+ dept_id: str,
+) -> None:
+ cleaned = list(dict.fromkeys([tid.strip() for tid in transport_ids if (tid or "").strip()]))
+ transport_map = {t.id: t for t in transports}
+ now = datetime.now()
+
+ current_links = (
+ db.query(PlFreightSettlementTransport)
+ .filter(
+ PlFreightSettlementTransport.settlement_id == settlement_id,
+ PlFreightSettlementTransport.del_flag == 0,
+ )
+ .all()
+ )
+ current_map = {link.transport_id: link for link in current_links}
+ new_set = set(cleaned)
+
+ for tid, link in current_map.items():
+ if tid not in new_set:
+ link.del_flag = 1
+ link.update_by = user_id
+ link.update_time = now
+
+ for tid in cleaned:
+ transport = transport_map[tid]
+ amount = transport.freight_amount
+ if tid in current_map:
+ link = current_map[tid]
+ if Decimal(str(link.freight_amount or 0)) != Decimal(str(amount or 0)):
+ link.freight_amount = amount
+ link.update_by = user_id
+ link.update_time = now
+ continue
+ db.add(
+ PlFreightSettlementTransport(
+ id=generate_uuid(),
+ tenant_no=tenant_no,
+ settlement_id=settlement_id,
+ transport_id=tid,
+ freight_amount=amount,
+ create_by=user_id,
+ create_dept_id=dept_id or "",
+ )
+ )
+
+ _recalc_settlement_total_freight_from_links(db, settlement_id, user_id=user_id, now=now)
+
+
def update_settlement_draft(
db: Session,
*,
@@ -1100,15 +1361,37 @@ def update_settlement_draft(
) -> PlFreightSettlement:
settlement = get_settlement_row(db, tenant_no, settlement_id, user=user)
status = settlement.settlement_status
- if status not in ("pending", "approved"):
+ if status not in (*_DRAFT_SETTLEMENT_STATUSES, "approved"):
raise HTTPException(status_code=400, detail="当前状态不可编辑")
update_data = payload.model_dump(exclude_unset=True, by_alias=False)
+ transport_ids = update_data.pop("transport_ids", None)
+
if status == "approved":
+ if transport_ids is not None:
+ raise HTTPException(status_code=400, detail="当前状态不可修改关联运输")
allowed = {"invoice_amount", "invoice_no", "invoice_date", "invoice_attachment_urls", "remark"}
update_data = {k: v for k, v in update_data.items() if k in allowed}
if not update_data:
raise HTTPException(status_code=400, detail="无有效更新字段")
+ elif status in _DRAFT_SETTLEMENT_STATUSES and transport_ids is not None:
+ dept_id = getattr(user, "dept_id", "") if user else ""
+ transports = _validate_transports_for_settlement_update(
+ db,
+ tenant_no=tenant_no,
+ settlement_id=settlement_id,
+ transport_ids=transport_ids,
+ )
+ _sync_settlement_transport_links(
+ db,
+ tenant_no=tenant_no,
+ settlement_id=settlement_id,
+ transport_ids=transport_ids,
+ transports=transports,
+ user_id=user_id,
+ dept_id=dept_id,
+ )
+
for key, value in update_data.items():
setattr(settlement, key, value)
settlement.update_by = user_id
diff --git a/backend/app/services/pl_plan_service.py b/backend/app/services/pl_plan_service.py
index 8052a5f2a..7b9702a9f 100644
--- a/backend/app/services/pl_plan_service.py
+++ b/backend/app/services/pl_plan_service.py
@@ -27,6 +27,7 @@ from app.schemas.pl.plan import (
PlanProductCreate,
PlanTransportCreateBlock,
)
+from app.services.pl_freight_settlement_service import sync_draft_settlement_freight_for_transport
from app.services.pl_transport_resource_snapshot_service import (
apply_resource_snapshot_json,
build_transport_resource_snapshot,
@@ -59,8 +60,24 @@ def _product_quantity(prod: PlanProductCreate) -> Decimal:
return Decimal("0")
-def sum_product_quantities(products: list[PlanProductCreate]) -> Decimal:
- return sum(_product_quantity(p) for p in products)
+def _product_create_actual_qty(prod: PlanProductCreate) -> Decimal:
+ if prod.actual_qty is not None:
+ return Decimal(str(prod.actual_qty))
+ return Decimal("0")
+
+
+def _plan_product_actual_qty(prod: PlPlanProduct) -> Decimal:
+ if prod.actual_qty is not None:
+ return Decimal(str(prod.actual_qty))
+ return Decimal("0")
+
+
+def sum_product_actual_quantities(products: list[PlanProductCreate]) -> Decimal:
+ return sum(_product_create_actual_qty(p) for p in products)
+
+
+def sum_plan_product_actual_quantities(products: list[PlPlanProduct]) -> Decimal:
+ return sum(_plan_product_actual_qty(p) for p in products)
def _estimate_qty_fields(plan_type: str, qty: Optional[Decimal]) -> dict:
@@ -100,7 +117,7 @@ def build_plan_product(
package_spec=prod.package_spec,
delivery_method=prod.delivery_method,
quantity=qty if qty else None,
- actual_qty=Decimal(str(prod.actual_qty)) if prod.actual_qty is not None else (qty if qty else None),
+ actual_qty=Decimal(str(prod.actual_qty)) if prod.actual_qty is not None else None,
tax_price=tax_price,
tax_amount=prod.tax_amount,
tax_subtotal=prod.tax_subtotal,
@@ -195,10 +212,7 @@ def _calc_freight_amount(
qty = transport_qty
if qty is None:
- qty = sum(
- Decimal(str(p.quantity or p.inbound_estimate_qty or p.outbound_estimate_qty or 0))
- for p in products
- )
+ qty = sum_plan_product_actual_quantities(products)
if freight_price is not None:
computed = qty * Decimal(str(freight_price))
if freight_amount is not None:
@@ -356,10 +370,7 @@ def _resolve_transport_context(
)
transport_qty = transport_payload.transport_qty
if transport_qty is None and transport_payload.freight_type == "by_weight":
- transport_qty = sum(
- Decimal(str(p.quantity or p.inbound_estimate_qty or p.outbound_estimate_qty or 0))
- for p in products
- )
+ transport_qty = sum_plan_product_actual_quantities(products)
return (
vehicle,
@@ -521,6 +532,14 @@ def upsert_draft_transport_for_plan(
driver_id=driver_id,
)
plan.freight_amount = freight_amount or 0
+ if plan.transport_id:
+ sync_draft_settlement_freight_for_transport(
+ db,
+ tenant_no=tenant_no,
+ transport_id=plan.transport_id,
+ freight_amount=freight_amount or Decimal("0"),
+ user_id=user_id,
+ )
if plan.transport_status != "arranged":
plan.transport_status = "pending"
@@ -660,10 +679,7 @@ def create_transport_for_plan(
transport_qty = transport_payload.transport_qty
if transport_qty is None and transport_payload.freight_type == "by_weight":
- transport_qty = sum(
- Decimal(str(p.quantity or p.inbound_estimate_qty or p.outbound_estimate_qty or 0))
- for p in products
- )
+ transport_qty = sum_plan_product_actual_quantities(products)
transport_no = generate_transport_no(db)
transport = PlTransport(
@@ -739,9 +755,9 @@ def validate_create_full(payload: PlanCreateFull) -> None:
if transport.freight_type == "by_weight":
if not transport.freight_price or Decimal(str(transport.freight_price)) <= 0:
raise HTTPException(status_code=422, detail="按重量计费时请填写运输单价")
- qty = transport.transport_qty or sum_product_quantities(payload.products)
+ qty = transport.transport_qty or sum_product_actual_quantities(payload.products)
if qty <= 0:
- raise HTTPException(status_code=422, detail="运输量必须大于0")
+ raise HTTPException(status_code=422, detail="运输量必须大于0,请填写产品实际数量或运输量")
elif transport.freight_type == "by_trip":
if not transport.freight_amount or Decimal(str(transport.freight_amount)) <= 0:
raise HTTPException(status_code=422, detail="按趟计费时请填写运费金额")
@@ -850,6 +866,13 @@ def apply_archive_freight(
transport.freight_price = None
transport.transport_qty = None
transport.update_by = user_id
+ sync_draft_settlement_freight_for_transport(
+ db,
+ tenant_no=tenant_no,
+ transport_id=plan.transport_id,
+ freight_amount=Decimal("0"),
+ user_id=user_id,
+ )
return
if not plan.transport_id:
@@ -874,13 +897,34 @@ def apply_archive_freight(
transport.freight_price = freight.freight_price
amount = freight.freight_amount or Decimal("0")
transport.freight_amount = amount
+ freight_type = freight.freight_type or transport.freight_type or "by_weight"
+ plan_products = (
+ db.query(PlPlanProduct)
+ .filter(
+ PlPlanProduct.plan_id == plan.id,
+ PlPlanProduct.tenant_no == tenant_no,
+ PlPlanProduct.del_flag == 0,
+ )
+ .all()
+ )
if freight.transport_qty is not None:
transport.transport_qty = freight.transport_qty
+ elif freight_type == "by_weight":
+ transport.transport_qty = sum_plan_product_actual_quantities(plan_products)
+ if freight_type == "by_weight" and (transport.transport_qty or 0) <= 0:
+ raise HTTPException(status_code=400, detail="运输量必须大于0,请先填写产品实际数量")
if freight.has_invoice is not None:
transport.has_invoice = freight.has_invoice
transport.update_by = user_id
plan.freight_amount = amount
+ sync_draft_settlement_freight_for_transport(
+ db,
+ tenant_no=tenant_no,
+ transport_id=plan.transport_id,
+ freight_amount=amount,
+ user_id=user_id,
+ )
def record_plan_change(
diff --git a/backend/graphify-out/.graphify_labels.json b/backend/graphify-out/.graphify_labels.json
index 3f6baa35d..23bb2b2e1 100644
--- a/backend/graphify-out/.graphify_labels.json
+++ b/backend/graphify-out/.graphify_labels.json
@@ -148,7 +148,5 @@
"146": "Community 146",
"147": "Community 147",
"148": "Community 148",
- "149": "Community 149",
- "150": "Community 150",
- "151": "Community 151"
+ "150": "Community 150"
}
diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md
index 11b51a6d5..32a3cf9e2 100644
--- a/backend/graphify-out/GRAPH_REPORT.md
+++ b/backend/graphify-out/GRAPH_REPORT.md
@@ -1,16 +1,16 @@
-# Graph Report - backend (2026-06-30)
+# Graph Report - backend (2026-07-01)
## Corpus Check
-- 226 files · ~157,929 words
+- 226 files · ~158,852 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
-- 4973 nodes · 34742 edges · 152 communities (150 shown, 2 thin omitted)
-- Extraction: 51% EXTRACTED · 49% INFERRED · 0% AMBIGUOUS · INFERRED: 17183 edges (avg confidence: 0.5)
+- 5033 nodes · 34891 edges · 150 communities (148 shown, 2 thin omitted)
+- Extraction: 51% EXTRACTED · 49% INFERRED · 0% AMBIGUOUS · INFERRED: 17194 edges (avg confidence: 0.5)
- Token cost: 0 input · 0 output
## Graph Freshness
-- Built from commit: `d84f4b94`
+- Built from commit: `7c838cfb`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -154,9 +154,7 @@
- [[_COMMUNITY_Community 146|Community 146]]
- [[_COMMUNITY_Community 147|Community 147]]
- [[_COMMUNITY_Community 148|Community 148]]
-- [[_COMMUNITY_Community 149|Community 149]]
- [[_COMMUNITY_Community 150|Community 150]]
-- [[_COMMUNITY_Community 151|Community 151]]
## God Nodes (most connected - your core abstractions)
1. `Session` - 1123 edges
@@ -164,9 +162,9 @@
3. `int` - 336 edges
4. `Any` - 331 edges
5. `get_tenant_no()` - 327 edges
-6. `SysUser` - 281 edges
+6. `SysUser` - 282 edges
7. `DbUserContext` - 272 edges
-8. `success_response()` - 258 edges
+8. `success_response()` - 259 edges
9. `Session` - 257 edges
10. `bool` - 255 edges
@@ -182,175 +180,175 @@
- `int` --uses--> `LocalStorage` [INFERRED]
scripts/run_db_auto_generate_plans.py → app/core/storage.py
-## Communities (152 total, 2 thin omitted)
+## Communities (150 total, 2 thin omitted)
### Community 0 - "Community 0"
-Cohesion: 0.11
-Nodes (126): date, DbUserContext, int, Session, str, DocumentReminderRead, DocumentReminderUpdate, FreightSettlementCreate (+118 more)
+Cohesion: 0.14
+Nodes (103): date, DbUserContext, int, Session, str, DocumentReminderRead, DocumentReminderUpdate, FreightSettlementUpdate (+95 more)
### Community 1 - "Community 1"
-Cohesion: 0.08
-Nodes (24): 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo (+16 more)
+Cohesion: 0.04
+Nodes (46): invoice_info_list(), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll (+38 more)
### Community 2 - "Community 2"
Cohesion: 0.35
-Nodes (221): Any, bool, str, UploadFile, CRM 线索管理 Pydantic Schemas, CRM 客户管理 Pydantic Schemas, CRM 商机管理 Pydantic Schemas, CRM 客户公海池规则 Pydantic Schemas (+213 more)
+Nodes (219): Any, bool, str, UploadFile, CRM 线索管理 Pydantic Schemas, CRM 客户管理 Pydantic Schemas, CRM 商机管理 Pydantic Schemas, CRM 客户公海池规则 Pydantic Schemas (+211 more)
### Community 3 - "Community 3"
Cohesion: 0.07
-Nodes (172): _apply_default_invoice_info_to_customers(), category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate() (+164 more)
+Nodes (171): _apply_default_invoice_info_to_customers(), category_add(), category_delete(), category_tree(), category_update(), clue_assign(), clue_check_convert(), clue_check_duplicate() (+163 more)
### Community 4 - "Community 4"
-Cohesion: 0.05
-Nodes (43): invoice_info_list(), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 按客户ID查询开票信息(与 by-customer 等价), 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list (+35 more)
+Cohesion: 0.13
+Nodes (29): Any, bool, CRM 供方信息 CRUD — 对照 CrmSupplierInfoServiceImpl.java, int, Session, str, _apply_list_filters(), create_supplier_info() (+21 more)
### Community 5 - "Community 5"
-Cohesion: 0.07
-Nodes (42): _db_pool_keepalive_loop(), _error_json(), lifespan(), _mask_secret(), Exception, int, Request, str (+34 more)
+Cohesion: 0.08
+Nodes (39): _db_pool_keepalive_loop(), _error_json(), lifespan(), _mask_secret(), Exception, int, Request, str (+31 more)
### Community 6 - "Community 6"
-Cohesion: 0.13
-Nodes (56): Any, int, Session, str, Any, bool, CRM 客户 CRUD(客户主表 + 转移/成交/公海池操作), CrmCustomer (+48 more)
-
-### Community 7 - "Community 7"
Cohesion: 0.14
Nodes (39): Any, bool, int, Session, str, SysUser, create_user(), get_user() (+31 more)
+### Community 7 - "Community 7"
+Cohesion: 0.06
+Nodes (33): BaseModel, AttachmentOut, ReimburseApplyCreate, ReimburseApplyUpdate, ReimburseApprovalCreate, _coerce_optional_id(), WorkflowDefCreate, WorkflowDefUpdate (+25 more)
+
### Community 8 - "Community 8"
-Cohesion: 0.16
-Nodes (33): Any, bool, int, Session, str, Any, Session, str (+25 more)
+Cohesion: 0.35
+Nodes (5): Any, str, WfProcessInstance, WorkflowEngine, WfProcessInstance
### Community 9 - "Community 9"
-Cohesion: 0.10
-Nodes (22): str, CustomerPoolDetailBody, CustomerPoolListBody, PurchasePlanBase, PurchasePlanCreate, PurchasePlanUpdate, BaseModel, SoftDeleteModel (+14 more)
+Cohesion: 0.19
+Nodes (38): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, StartInstanceBody, Any, bool, WfProcessInstance, bool (+30 more)
### Community 10 - "Community 10"
-Cohesion: 0.09
-Nodes (39): CRM 报价单 CRUD — 对照 CrmQuoteServiceImpl.java(P2 全量), date, Decimal, Query, _build_quote_filters(), calculate_quote_amount(), create_quote(), _decimal_value() (+31 more)
+Cohesion: 0.03
+Nodes (151): register_quote_routes(), Any, bool, CRM 报价单 CRUD — 对照 CrmQuoteServiceImpl.java(P2 全量), datetime, Decimal, int, Session (+143 more)
### Community 11 - "Community 11"
-Cohesion: 0.16
-Nodes (36): Any, bool, BxUserContext, BxWorkflowNode, float, int, ReimburseApplyOut, Session (+28 more)
+Cohesion: 0.15
+Nodes (38): Any, bool, BxUserContext, BxWorkflowNode, float, int, ReimburseApplyOut, Session (+30 more)
### Community 12 - "Community 12"
Cohesion: 0.12
-Nodes (85): date, DbUserContext, int, Session, str, VehicleUreaApplyCreate, VehicleUreaApplyRead, VehicleUreaApplyUpdate (+77 more)
+Nodes (84): date, DbUserContext, int, Session, str, VehicleUreaApplyCreate, VehicleUreaApplyRead, VehicleUreaApplyUpdate (+76 more)
### Community 13 - "Community 13"
-Cohesion: 0.10
-Nodes (17): Exception, bool, bytes, int, str, BytesIO, BaseStorage, convert_heic_to_jpeg() (+9 more)
+Cohesion: 0.05
+Nodes (72): BxUserContext, Session, str, UploadFile, Any, bool, bytes, int (+64 more)
### Community 14 - "Community 14"
Cohesion: 0.09
Nodes (55): Any, bool, datetime, int, Session, str, _advance_contract_after_approval(), approve_contract() (+47 more)
### Community 15 - "Community 15"
-Cohesion: 0.18
-Nodes (24): bool, date, datetime, int, Session, str, ReimburseApplyOut, allocate_reimburse_title_seq() (+16 more)
+Cohesion: 0.14
+Nodes (28): str, T, bool, date, datetime, int, Session, str (+20 more)
### Community 16 - "Community 16"
-Cohesion: 0.17
-Nodes (28): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def() (+20 more)
+Cohesion: 0.07
+Nodes (103): Any, CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), Any, CRM 合同 CRUD — 对照 CrmContractServiceImpl.java(列表/详情 P1), Decimal, int, Session (+95 more)
### Community 17 - "Community 17"
-Cohesion: 0.20
-Nodes (52): Any, Any, CRM 商机 CRUD(主表 + 阶段/赢输单/统计/看板/漏斗), CrmOpportunity, date, datetime, Decimal, int (+44 more)
+Cohesion: 0.18
+Nodes (50): Any, CRM 商机 CRUD(主表 + 阶段/赢输单/统计/看板/漏斗), CrmOpportunity, date, datetime, Decimal, int, Session (+42 more)
### Community 18 - "Community 18"
-Cohesion: 0.13
-Nodes (29): Any, bool, BxUserContext, BxWorkflowNode, float, int, Session, str (+21 more)
+Cohesion: 0.18
+Nodes (19): Any, bool, BxUserContext, BxWorkflowNode, float, int, Session, str (+11 more)
### Community 19 - "Community 19"
-Cohesion: 0.23
-Nodes (27): register_quote_routes(), bool, int, Session, str, accept_quote(), _ensure_quote_in_scope(), generate_pdf() (+19 more)
+Cohesion: 0.21
+Nodes (27): approve_task(), _assert_wf_instance_in_scope(), _business_type_label(), create_process_def(), delete_process_def(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields() (+19 more)
### Community 20 - "Community 20"
-Cohesion: 0.35
-Nodes (30): BxUserContext, int, Session, str, approve_reimburse(), approved_by_me(), _build_details_data(), create_reimburse() (+22 more)
+Cohesion: 0.22
+Nodes (47): BxUserContext, int, Session, str, BxUserContext, int, Session, str (+39 more)
### Community 21 - "Community 21"
-Cohesion: 0.06
-Nodes (130): bool, DbUserContext, int, 运输计划管理 - 基础数据 API(承运商、车辆、人员), PlCarrier, PlVehicle, Session, str (+122 more)
+Cohesion: 0.05
+Nodes (162): bool, DbUserContext, int, 运输计划管理 - 基础数据 API(承运商、车辆、人员), PlCarrier, PlVehicle, Session, str (+154 more)
### Community 22 - "Community 22"
-Cohesion: 0.20
-Nodes (36): ProcessDefCreateBody, ProcessDefUpdateBody, PublishVersionBody, 审批意见:前端传 commentText,兼容 comment。, 审批意见:前端传 commentText,兼容 comment。, StartInstanceBody, TaskActionBody, Any (+28 more)
-
-### Community 23 - "Community 23"
-Cohesion: 0.27
-Nodes (35): AdvanceIssueRequest, BxUserContext, int, ReimburseApplyOut, Session, str, str, BatchOffsetRequest (+27 more)
-
-### Community 24 - "Community 24"
-Cohesion: 0.12
-Nodes (90): date, DbUserContext, int, Session, str, VehicleMaintenanceApplyCreate, VehicleMaintenanceApplyRead, VehicleMaintenanceApplyReminder (+82 more)
-
-### Community 25 - "Community 25"
Cohesion: 0.22
Nodes (29): Any, int, Session, str, create_instance(), create_process_def(), create_task(), get_all_tasks_for_business() (+21 more)
+### Community 23 - "Community 23"
+Cohesion: 0.23
+Nodes (37): AdvanceIssueRequest, BxUserContext, int, ReimburseApplyOut, Session, str, datetime, str (+29 more)
+
+### Community 24 - "Community 24"
+Cohesion: 0.12
+Nodes (89): date, DbUserContext, int, Session, str, VehicleMaintenanceApplyCreate, VehicleMaintenanceApplyRead, VehicleMaintenanceApplyReminder (+81 more)
+
+### Community 25 - "Community 25"
+Cohesion: 0.09
+Nodes (29): 运输计划管理 - 基础数据 Schema(承运商、车辆、人员、证书), CarrierAuditReject, CarrierBase, CarrierCreate, CarrierListResponse, CarrierQualificationBase, CarrierRead, CarrierUpdate (+21 more)
+
### Community 26 - "Community 26"
-Cohesion: 0.20
-Nodes (18): bool, int, Redis, Request, str, _claims_from_auth(), _coerce_post_method_override_to_get(), _get_redis_client() (+10 more)
+Cohesion: 0.15
+Nodes (23): logout(), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, bool, int, Redis, Request (+15 more)
### Community 27 - "Community 27"
Cohesion: 0.11
Nodes (57): Any, bool, int, Session, str, Any, bool, CRM 线索 CRUD(线索主表 + 转化/分配/无效/等级操作) (+49 more)
### Community 28 - "Community 28"
-Cohesion: 0.07
-Nodes (61): Any, CertRead, date, int, Session, str, CertRead, Session (+53 more)
+Cohesion: 0.33
+Nodes (29): AdvanceApplyCreate, AdvanceApplyOut, AdvanceApplyUpdate, AdvanceApprovalCreate, BxUserContext, int, Session, str (+21 more)
### Community 29 - "Community 29"
-Cohesion: 0.04
-Nodes (66): 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll, 供方全量列表(下拉)— Java: CrmSupplierInfoController.listAll (+58 more)
+Cohesion: 0.08
+Nodes (26): 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo, 供方详情 — Java: CrmSupplierInfoController.getInfo (+18 more)
### Community 30 - "Community 30"
Cohesion: 0.07
Nodes (43): AttachmentUploadResponse, ChangePasswordRequest, Config, LoginRequest, LoginResponse, Pydantic schemas - 用户认证, ResetPasswordRequest, UserCreate (+35 more)
### Community 31 - "Community 31"
-Cohesion: 0.34
-Nodes (19): int, PlTransport, Session, str, UploadFile, _build_public_page(), _format_file_size(), _format_plan_date() (+11 more)
+Cohesion: 0.15
+Nodes (30): Any, bool, int, Session, str, approve_quote(), can_user_approve(), create_approval_records() (+22 more)
### Community 32 - "Community 32"
Cohesion: 0.10
-Nodes (97): date, DbUserContext, int, Session, str, VehicleRechargeApplyCreate, VehicleRechargeApplyRead, VehicleRechargeApplyUpdate (+89 more)
+Nodes (99): date, DbUserContext, int, Session, str, VehicleRechargeApplyCreate, VehicleRechargeApplyRead, VehicleRechargeApplyUpdate (+91 more)
### Community 33 - "Community 33"
-Cohesion: 0.14
-Nodes (39): pool_rule_toggle(), Any, bool, CRM 公海池规则 CRUD + 规则执行逻辑, int, Session, str, create_pool_rule() (+31 more)
+Cohesion: 0.13
+Nodes (56): Any, int, Session, str, Any, bool, CRM 客户 CRUD(客户主表 + 转移/成交/公海池操作), CrmCustomer (+48 more)
### Community 34 - "Community 34"
-Cohesion: 0.23
-Nodes (28): Engine, build_id_maps(), clip_text(), count_rows(), export_mapping(), fetch_rows(), legacy_id_to_str(), main() (+20 more)
+Cohesion: 0.19
+Nodes (34): int, str, generate_random_password(), get_file_size_display(), Engine, int, Path, build_id_maps() (+26 more)
### Community 35 - "Community 35"
Cohesion: 0.04
-Nodes (151): DbUserContext, FreightSettlementDisburseBody, FreightSettlementSubmitApprovalBody, FreightSettlementUpdate, int, Session, str, Any (+143 more)
+Nodes (182): DbUserContext, FreightSettlementDisburseBody, FreightSettlementSubmitApprovalBody, FreightSettlementUpdate, int, Session, str, Any (+174 more)
### Community 36 - "Community 36"
-Cohesion: 0.14
-Nodes (27): operlog_detail(), operlog_list(), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info(), Session, Any, bool (+19 more)
+Cohesion: 0.19
+Nodes (20): int, str, Any, bool, int, Session, str, business_type_from_path() (+12 more)
### Community 37 - "Community 37"
Cohesion: 0.33
Nodes (14): Any, int, Session, str, create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options() (+6 more)
### Community 38 - "Community 38"
-Cohesion: 0.10
-Nodes (35): Any, bool, int, str, Any, bool, int, Session (+27 more)
+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 39 - "Community 39"
-Cohesion: 0.16
-Nodes (25): datetime, int, str, bool, date, datetime, str, 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。 (+17 more)
+Cohesion: 0.18
+Nodes (22): datetime, date, datetime, str, 审批轮次过滤 — 驳回后重新提交时,进度接口仅展示当前轮次。, format_datetime(), get_current_time(), parse_datetime() (+14 more)
### Community 40 - "Community 40"
Cohesion: 0.13
Nodes (37): Any, bool, Decimal, int, Session, str, batch_insert_quote_products(), calculate_subtotal() (+29 more)
### Community 41 - "Community 41"
-Cohesion: 0.13
-Nodes (39): Any, bool, date, int, Session, str, Session, str (+31 more)
+Cohesion: 0.12
+Nodes (41): Any, bool, date, int, Session, str, Session, str (+33 more)
### Community 42 - "Community 42"
Cohesion: 0.08
@@ -362,39 +360,39 @@ Nodes (16): Any, int, str, BusinessException, InvalidStatusTransitionException,
### Community 44 - "Community 44"
Cohesion: 0.21
-Nodes (38): DbInboundOutbound, DbUserContext, InboundOutboundRead, Session, str, CreateLinkForPlanPayload, _apply_inventory_product_update(), _apply_inventory_update() (+30 more)
+Nodes (36): DbInboundOutbound, DbUserContext, Session, str, CreateLinkForPlanPayload, _apply_inventory_product_update(), _apply_inventory_update(), _base_query() (+28 more)
### Community 45 - "Community 45"
Cohesion: 0.36
Nodes (15): create_leave(), delete_leave(), get_leave(), _leave_local_callback(), leave_workflow_callback(), list_leaves(), submit_leave(), update_leave() (+7 more)
### Community 46 - "Community 46"
-Cohesion: 0.19
-Nodes (18): str, Any, bool, Session, str, CRM 模块 Excel 导出列定义(字段与字典类型对齐 Java *Vo @ExcelDictFormat)。, _yes_no(), _build_workbook() (+10 more)
+Cohesion: 0.15
+Nodes (22): clue_import_template(), customer_import_template(), product_import_template(), str, Any, bool, Session, str (+14 more)
### Community 47 - "Community 47"
-Cohesion: 0.10
-Nodes (21): Java: createNewVersion — 返回新报价单 id, Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: CrmQuoteServiceImpl.withdrawApproval(校验创建人), Java: statisticsOverview (+13 more)
+Cohesion: 0.05
+Nodes (82): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, register_contract_routes(), bool, bool, 运营端角色守卫:admin / super_admin 可访问。, require_admin_or_super_admin(), batch_assign_owner(), batch_submit_approval() (+74 more)
### Community 48 - "Community 48"
-Cohesion: 0.35
-Nodes (9): bool, BxUserContext, BxWorkflowNode, Session, str, 按业务类型获取工作流;已知类型不存在时自动创建空定义(无节点)。, 按业务类型获取工作流;已知类型不存在时自动创建空定义(无节点)。, WorkflowService (+1 more)
+Cohesion: 0.39
+Nodes (8): bool, BxUserContext, Session, str, 按业务类型获取工作流;已知类型不存在时自动创建空定义(无节点)。, 按业务类型获取工作流;已知类型不存在时自动创建空定义(无节点)。, WorkflowService, BxWorkflowDef
### Community 49 - "Community 49"
-Cohesion: 0.31
-Nodes (20): Any, bool, CrmOpportunity, datetime, int, Session, str, create_opportunity_follow() (+12 more)
+Cohesion: 0.30
+Nodes (21): Any, bool, CrmOpportunity, datetime, int, Session, str, ensure_crm_create_by_row_in_scope() (+13 more)
### Community 50 - "Community 50"
-Cohesion: 0.11
-Nodes (32): CRM 报价单 API 路由 — 挂接到 crm.router, CRM 报价单 Pydantic Schemas, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+24 more)
+Cohesion: 0.12
+Nodes (31): CRM 报价单 API 路由 — 挂接到 crm.router, CRM 报价单 Pydantic Schemas, QuoteAcceptBody, QuoteApprovalApproveBody, QuoteApprovalListBody, QuoteApprovalRefreshNamesBody, QuoteApprovalWithdrawBody, QuoteCreateBody (+23 more)
### Community 51 - "Community 51"
Cohesion: 0.07
-Nodes (46): CRM 合同 API 路由 — GET/PUT/DELETE/POST 对齐原 Java CRM, CRM 合同 Pydantic Schemas — 对照 CrmContractBo / CrmContractVo, ContractApprovalActionBody, ContractApprovalApproveBody, ContractApprovalByContractBody, ContractApprovalExportBody, ContractApprovalListBody, ContractApprovalListQuery (+38 more)
+Nodes (55): int, PlTransport, Session, str, UploadFile, Any, Session, str (+47 more)
### Community 52 - "Community 52"
Cohesion: 0.10
-Nodes (61): CrmContract, Query, Any, bool, CrmContractProductPriceTier, date, Decimal, int (+53 more)
+Nodes (63): CrmContract, Query, Any, bool, CrmContractProductPriceTier, date, Decimal, int (+55 more)
### Community 53 - "Community 53"
Cohesion: 0.24
@@ -405,8 +403,8 @@ Cohesion: 0.22
Nodes (17): Any, bool, Session, str, list_share_logs(), _parse_user_agent(), CRM 报价单分享访问日志 CRUD — 对照 CrmQuoteShareLogServiceImpl.java, Java: statisticsVisits (+9 more)
### Community 55 - "Community 55"
-Cohesion: 0.04
-Nodes (111): Any, bool, CRM 产品模块 CRUD(产品分类 + 产品 + 附件), int, Session, str, SysOss, int (+103 more)
+Cohesion: 0.20
+Nodes (30): Any, bool, CRM 产品模块 CRUD(产品分类 + 产品 + 附件), int, Session, str, barcode_exists(), category_code_exists() (+22 more)
### Community 56 - "Community 56"
Cohesion: 0.26
@@ -425,40 +423,40 @@ Cohesion: 0.25
Nodes (23): Any, bool, int, Session, str, create_role(), get_role(), get_role_data_scope() (+15 more)
### Community 60 - "Community 60"
-Cohesion: 0.18
-Nodes (11): 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位序号} (+3 more)
+Cohesion: 0.28
+Nodes (18): Any, int, Session, str, _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept() (+10 more)
### Community 61 - "Community 61"
Cohesion: 0.12
-Nodes (56): DbInboundOutbound, DbVehicle, InboundOutboundRead, VehicleRead, bool, datetime, DbWeighingSlip, Session (+48 more)
+Nodes (46): Session, str, bool, date, DbInboundOutbound, DbPurchasePlan, float, PlPlan (+38 more)
### Community 62 - "Community 62"
Cohesion: 0.12
Nodes (45): bool, DbInboundOutbound, int, PublicInventoryFeedback, PublicInventoryPageRead, Session, str, UploadFile (+37 more)
### Community 63 - "Community 63"
-Cohesion: 0.20
-Nodes (46): AdvanceApplyCreate, AdvanceApplyOut, AdvanceApplyUpdate, AdvanceApprovalCreate, BxUserContext, int, Session, str (+38 more)
+Cohesion: 0.09
+Nodes (22): generate_auto_product_no(), 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位随机大写字符, Java: generateAutoProductNo — SXWL + 8位随机大写字符 (+14 more)
### Community 64 - "Community 64"
-Cohesion: 0.11
-Nodes (18): export_contracts(), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), Java: queryList for export, Java: queryList for export (+10 more)
+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 65 - "Community 65"
-Cohesion: 0.12
-Nodes (17): create_new_version(), Java: toContract — 返回 contractId, Java: createNewVersion — 返回新报价单 id, Java: toContract — 返回 contractId, Java: createNewVersion — 返回新报价单 id, Java: toContract — 返回 contractId, Java: createNewVersion — 返回新报价单 id, Java: createNewVersion — 返回新报价单 id (+9 more)
+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 66 - "Community 66"
-Cohesion: 0.34
-Nodes (16): Any, bool, int, Session, str, create_dict_type(), dict_type_code_exists(), get_dict_type() (+8 more)
+Cohesion: 0.14
+Nodes (14): 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove, 删除供方 — Java: CrmSupplierInfoController.remove (+6 more)
### Community 67 - "Community 67"
-Cohesion: 0.18
-Nodes (11): float, int, str, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n (+3 more)
+Cohesion: 0.16
+Nodes (33): Any, bool, int, Session, str, Any, Session, str (+25 more)
### Community 68 - "Community 68"
-Cohesion: 0.11
-Nodes (35): BxUserContext, Session, str, Any, str, Any, bool, int (+27 more)
+Cohesion: 0.25
+Nodes (11): check_customer_protect_time(), _execute_single_rule(), _get_all_tenant_nos(), pool_recovery_job(), 公海池自动回收任务(由 APScheduler 调度) 遍历所有租户的启用规则,执行自动回收。, 每天凌晨1点:检查保护期到期客户,跟进次数不足则退回公海, 每天早上9点:保护期到期提醒(3天内到期且跟进不足), remind_customer_recycle() (+3 more)
### Community 69 - "Community 69"
Cohesion: 0.28
@@ -469,8 +467,8 @@ Cohesion: 0.29
Nodes (14): is_valid_dict_type(), load_portal_baseline(), load_sx(), load_zkxw(), main(), map_tag_type(), normalize_row(), parse_insert() (+6 more)
### Community 71 - "Community 71"
-Cohesion: 0.41
-Nodes (13): BxUserContext, Session, str, UploadFile, bind_biz(), delete_attachment(), download_file(), list_by_biz() (+5 more)
+Cohesion: 0.08
+Nodes (51): BxUserContext, Session, str, Any, str, bool, BxUserContext, int (+43 more)
### Community 72 - "Community 72"
Cohesion: 0.34
@@ -478,39 +476,39 @@ Nodes (19): check_python(), create_venv(), ensure_dirs(), ensure_valid_venv(), e
### Community 73 - "Community 73"
Cohesion: 0.07
-Nodes (98): attachment_download_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post(), create_role_management() (+90 more)
+Nodes (100): attachment_download_url(), attachment_preview_url(), AttachmentDownloadUrlBody, create_dept(), create_dict_data(), create_dict_type(), create_menu(), create_post() (+92 more)
### Community 74 - "Community 74"
-Cohesion: 0.15
-Nodes (30): Any, bool, int, Session, str, approve_quote(), can_user_approve(), create_approval_records() (+22 more)
+Cohesion: 0.08
+Nodes (26): 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list, 分页查询供方列表 — Java: CrmSupplierInfoController.list (+18 more)
### Community 75 - "Community 75"
-Cohesion: 0.06
-Nodes (101): bool, Decimal, int, PlanCreateFull, PlPlan, PlPlanProduct, PlTransport, PlVehicle (+93 more)
+Cohesion: 0.05
+Nodes (124): bool, Decimal, int, PlanCreateFull, PlPlan, PlPlanProduct, PlTransport, PlVehicle (+116 more)
### Community 76 - "Community 76"
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 77 - "Community 77"
-Cohesion: 0.33
-Nodes (5): _auto_fill_create_dept_id(), get_db(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID, ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID, ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID
+Cohesion: 0.34
+Nodes (23): DbUserContext, DbWeighingSlip, Session, str, weighing_to_read(), apply_product_snapshot_to_weighing(), _apply_weighing_product_update(), _apply_weighing_update() (+15 more)
### Community 78 - "Community 78"
-Cohesion: 0.16
-Nodes (16): bool, date, Session, str, get_last_month_range(), month_range(), 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生 (+8 more)
+Cohesion: 0.13
+Nodes (20): bool, date, Session, str, get_last_month_range(), month_range(), 地磅计划按月自动生成 — 迁移自 simple-dibang-xiaoshou/auto-create-plan/auto_create_monthly_pla, 按月自动生成采购计划。 - 默认仅在每月 1 日执行(force=True 时跳过该限制,供手动触发验收) - 遍历所有租户,按上月计划模板生 (+12 more)
### Community 79 - "Community 79"
Cohesion: 0.36
Nodes (10): add_scope_before_order(), ensure_import(), patch_base_data(), patch_get_helper(), patch_inventory(), patch_plan(), patch_transport(), str (+2 more)
### Community 80 - "Community 80"
-Cohesion: 0.06
-Nodes (32): BaseModel, AdvanceApplyOut, AdvanceApprovalCreate, AttachmentOut, ReimburseApplyCreate, ReimburseApplyUpdate, ReimburseApprovalCreate, Config (+24 more)
+Cohesion: 0.05
+Nodes (62): str, CRM 合同 Pydantic Schemas — 对照 CrmContractBo / CrmContractVo, ContractApprovalActionBody, ContractApprovalApproveBody, ContractApprovalByContractBody, ContractApprovalExportBody, ContractApprovalListBody, ContractApprovalListQuery (+54 more)
### Community 81 - "Community 81"
-Cohesion: 0.38
-Nodes (15): Any, bool, int, Session, str, create_post(), get_post(), list_posts() (+7 more)
+Cohesion: 0.25
+Nodes (8): 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位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}
### Community 82 - "Community 82"
Cohesion: 0.29
@@ -521,68 +519,68 @@ Cohesion: 0.18
Nodes (9): 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, 报销(bx)Pydantic 模型 — 响应协议与 bx 原系统保持一致, bx_health(), 报销(bx)API 路由聚合 — REST 风格,协议对齐 bx 原系统。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。, P0 健康检查:验证 bx 路由已挂载且响应协议为 code=0。 (+1 more)
### Community 84 - "Community 84"
-Cohesion: 0.25
-Nodes (8): 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位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}, Java: generateTemplateNo — TMPL{yyyyMMdd}{4位序号}
+Cohesion: 0.41
+Nodes (11): Any, str, build_quote_html(), _default_value(), _format_date(), _format_discount(), _format_money(), generate_quote_pdf() (+3 more)
### Community 85 - "Community 85"
-Cohesion: 0.17
-Nodes (49): bool, DbPurchasePlan, DbUserContext, PurchasePlanRead, PurchasePlanWithFillLink, Session, str, DbPurchasePlan (+41 more)
+Cohesion: 0.26
+Nodes (49): InboundOutboundRead, bool, DbPurchasePlan, DbUserContext, PurchasePlanRead, PurchasePlanWithFillLink, Session, str (+41 more)
### Community 86 - "Community 86"
-Cohesion: 0.05
-Nodes (140): register_contract_routes(), CRM 合同子模块路由 — 变更/模板/审批独立页, register_contract_sub_routes(), Any, bool, CRM 合同 CRUD — 对照 CrmContractServiceImpl.java(列表/详情 P1), Decimal, int (+132 more)
+Cohesion: 0.18
+Nodes (11): float, int, str, 发送订单状态通知 Args: openid: 用户openid order_n, 发送支付成功通知 Args: openid: 用户openid order_n, 发送配送通知 Args: openid: 配送员openid task_no:, 发送配送时效预警 Args: openid: 配送员openid task_n, 发送退款结果通知 Args: openid: 用户openid order_n (+3 more)
### Community 87 - "Community 87"
-Cohesion: 0.31
-Nodes (26): DbUserContext, DbWeighingSlip, Session, str, WeighingSlipRead, DbWeighingSlip, WeighingSlipRead, weighing_to_read() (+18 more)
+Cohesion: 0.22
+Nodes (12): Any, bool, str, WfProcessInstance, _LocalCallbackFn, _dispatch_local(), 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。 (+4 more)
### Community 88 - "Community 88"
-Cohesion: 0.29
-Nodes (16): Any, int, Session, str, BizLeaveRequest, create_leave(), get_leave(), list_leaves() (+8 more)
+Cohesion: 0.18
+Nodes (11): 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位序号} (+3 more)
### Community 89 - "Community 89"
-Cohesion: 0.18
-Nodes (19): bytes, int, str, download_file_bytes(), file_stream(), get_access_url(), get_download_url(), get_preview_url() (+11 more)
+Cohesion: 0.14
+Nodes (14): _build_category_tree(), _collect_category_with_ancestors(), list_category_tree(), 获取产品分类树(嵌套 children,供树形表格/树选择器使用), 获取产品分类树(嵌套 children,供树形表格/树选择器使用), 获取产品分类树(嵌套 children,供树形表格/树选择器使用), 按 parentId 将扁平分类列表组装为嵌套树, 获取产品分类树(嵌套 children,供树形表格/树选择器使用) (+6 more)
### Community 90 - "Community 90"
-Cohesion: 0.06
-Nodes (60): Any, bool, bytes, int, Request, str, Any, int (+52 more)
+Cohesion: 0.22
+Nodes (18): Any, bool, bytes, int, Request, str, _claims_from_auth(), _format_body_bytes() (+10 more)
### Community 91 - "Community 91"
Cohesion: 0.32
Nodes (7): str, eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时统一排序规则,避免 Illegal mix of collations。, 跨表字符串等值比较(JOIN / WHERE)时统一为 utf8mb4_unicode_ci。, 将列显式设为 utf8mb4_unicode_ci。, unicode_ci()
### Community 92 - "Community 92"
-Cohesion: 0.20
-Nodes (10): create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id (+2 more)
+Cohesion: 0.34
+Nodes (16): Any, bool, int, Session, str, create_dict_type(), dict_type_code_exists(), get_dict_type() (+8 more)
### Community 93 - "Community 93"
-Cohesion: 0.28
-Nodes (13): int, Session, str, _allocate_inbound_outbound_id(), _ensure_sequence_row(), max_numeric_inbound_outbound_id(), next_inbound_outbound_id(), 出入库单 id 生成 — 租户内纯数字自增,并发安全。 (+5 more)
+Cohesion: 0.15
+Nodes (22): int, Session, str, bool, datetime, DbWeighingSlip, Session, str (+14 more)
### Community 94 - "Community 94"
Cohesion: 0.18
Nodes (11): generate_contract_name(), Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName, Java: generateContractName (+3 more)
### Community 95 - "Community 95"
-Cohesion: 0.22
-Nodes (15): bool, BxUserContext, int, Session, str, Session, str, AttachmentService (+7 more)
+Cohesion: 0.29
+Nodes (16): Any, int, Session, str, BizLeaveRequest, create_leave(), get_leave(), list_leaves() (+8 more)
### Community 96 - "Community 96"
-Cohesion: 0.38
-Nodes (15): Any, bool, int, Session, str, create_site(), get_site(), list_sites() (+7 more)
+Cohesion: 0.34
+Nodes (16): Any, bool, int, Session, str, create_tenant(), get_tenant(), list_tenants() (+8 more)
### Community 97 - "Community 97"
-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.24
+Nodes (27): Any, bool, CRM 公海池规则 CRUD + 规则执行逻辑, int, Session, str, create_pool_rule(), create_rule() (+19 more)
### Community 98 - "Community 98"
-Cohesion: 0.26
-Nodes (10): Any, bool, str, WfNode, WfProcessInstance, 流程连线/转移 wf_transition, 流程连线/转移 wf_transition, WfTransition (+2 more)
+Cohesion: 0.38
+Nodes (15): Any, bool, int, Session, str, create_post(), get_post(), list_posts() (+7 more)
### Community 99 - "Community 99"
-Cohesion: 0.33
-Nodes (3): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, 地磅(db)Pydantic schemas — 对齐原 simple-dibang-xiaoshou 契约。, 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。
+Cohesion: 0.21
+Nodes (9): API 路由包 — 山峡化工生产一体化门户, get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,14 个一级菜单), operlog_detail(), operlog_list(), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), 操作日志分页列表(基于 API 请求日志适配 RuoYi OperLog 结构), _user_info() (+1 more)
### Community 100 - "Community 100"
Cohesion: 0.45
@@ -597,88 +595,88 @@ 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 103 - "Community 103"
-Cohesion: 0.09
-Nodes (147): date, DbUserContext, int, PlanCreateFull, PlPlan, Session, str, bool (+139 more)
+Cohesion: 0.08
+Nodes (158): date, DbUserContext, int, PlanCreateFull, PlPlan, Session, str, bool (+150 more)
### Community 104 - "Community 104"
Cohesion: 0.13
-Nodes (37): bool, Redis, Request, str, _T, bool, Redis, extend_session() (+29 more)
+Nodes (38): bool, Redis, Request, str, _T, bool, Redis, decode_token() (+30 more)
### Community 105 - "Community 105"
+Cohesion: 0.38
+Nodes (15): Any, bool, int, Session, str, create_site(), get_site(), list_sites() (+7 more)
+
+### Community 106 - "Community 106"
+Cohesion: 0.13
+Nodes (15): patch_plan_product_certs(), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输) (+7 more)
+
+### Community 107 - "Community 107"
Cohesion: 0.22
Nodes (9): create_from_opportunity(), _opportunity_products_to_contract_products(), Java: createFromOpportunity — 返回合同 id, Java: createFromOpportunity — 返回合同 id, Java: createFromOpportunity — 返回合同 id, Java: createFromOpportunity — 返回合同 id, Java: createFromOpportunity — 返回合同 id, Java: createFromOpportunity — 返回合同 id (+1 more)
-### Community 106 - "Community 106"
-Cohesion: 0.28
-Nodes (18): Any, int, Session, str, _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept() (+10 more)
-
-### Community 107 - "Community 107"
-Cohesion: 0.34
-Nodes (16): Any, bool, int, Session, str, create_tenant(), get_tenant(), list_tenants() (+8 more)
-
### Community 108 - "Community 108"
-Cohesion: 0.18
-Nodes (11): Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus, Java: statisticsStatus (+3 more)
+Cohesion: 0.44
+Nodes (8): bool, int, Session, str, ApiRequestLogCRUD, SysApiRequestLog, SysApiRequestLogHis, SysApiRequestLog
### Community 109 - "Community 109"
-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)
+Cohesion: 0.22
+Nodes (9): Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签 (+1 more)
### Community 111 - "Community 111"
-Cohesion: 0.14
-Nodes (14): Session, Any, Session, str, get_current_user(), get_current_user_by_token(), 根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期), 根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期) (+6 more)
+Cohesion: 0.07
+Nodes (27): Session, Any, Session, str, Session, str, get_current_user(), get_current_user_by_token() (+19 more)
### Community 112 - "Community 112"
-Cohesion: 0.14
-Nodes (19): Session, str, Session, str, get_user_menu_codes(), 菜单 code 权限守卫(V0.3:通过 sys_user_role → sys_role_menu → sys_menu.perms), 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, 接口菜单权限守卫。super_admin 直接放行。 (+11 more)
+Cohesion: 0.17
+Nodes (12): 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) (+4 more)
### Community 122 - "Community 122"
-Cohesion: 0.30
-Nodes (14): Any, bool, bytes, int, str, bytes, ApiCryptoError, _b64url_decode() (+6 more)
+Cohesion: 0.40
+Nodes (10): SysOss, int, Session, str, SysOss, create_oss(), create_oss(), get_oss_by_url() (+2 more)
### Community 123 - "Community 123"
-Cohesion: 0.41
-Nodes (11): Any, str, build_quote_html(), _default_value(), _format_date(), _format_discount(), _format_money(), generate_quote_pdf() (+3 more)
+Cohesion: 0.33
+Nodes (8): Decimal, str, derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal()
### Community 124 - "Community 124"
Cohesion: 0.28
Nodes (8): date, datetime, str, _date_to_str(), _dt_to_str(), PagedQuery, PagedResponse, bx 原系统 API 响应包装(code=0 / msg / data.rows),与门户 success_response 分离。
### Community 125 - "Community 125"
-Cohesion: 0.40
-Nodes (5): bool, str, get_password_hash(), 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password()
+Cohesion: 0.23
+Nodes (10): Any, bool, int, Session, str, camel_to_snake(), CRUDBase, get_model_attr() (+2 more)
### Community 126 - "Community 126"
-Cohesion: 0.10
-Nodes (24): Session, str, TransportInventoryLinkRead, PlTransportSiteLink, Session, str, TransportSiteLinkRead, _build_driver_url() (+16 more)
+Cohesion: 0.22
+Nodes (9): _category_row_to_dict(), list_categories(), 分类 ORM 对象转 dict(camelCase 键名), 分类 ORM 对象转 dict(camelCase 键名), 分类 ORM 对象转 dict(camelCase 键名), 分类 ORM 对象转 dict(camelCase 键名), 获取分类(扁平列表,支持名称模糊与状态筛选), 获取分类(扁平列表,支持名称模糊与状态筛选) (+1 more)
### Community 127 - "Community 127"
Cohesion: 0.29
Nodes (10): datetime, int, Session, str, BizNoKind, allocate_next_biz_no(), _format_biz_no(), _prefix_for() (+2 more)
### Community 128 - "Community 128"
-Cohesion: 0.11
-Nodes (22): Any, _fill_contract_linked_count(), list_quotes(), quote_row_to_dict(), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相), ORM → camelCase(单点真相) (+14 more)
+Cohesion: 0.20
+Nodes (10): create_from_quote(), _quote_products_to_contract_products(), Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id, Java: createFromQuote — 返回合同 id (+2 more)
### Community 129 - "Community 129"
-Cohesion: 0.40
-Nodes (3): AdvanceApplyCreate, AdvanceApplyUpdate, _coerce_optional_id()
+Cohesion: 0.22
+Nodes (9): generate_barcode(), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001), 生成唯一条码(纯数字:yyyyMMdd + 6位序号,如 20260606000001) (+1 more)
### Community 130 - "Community 130"
-Cohesion: 0.33
-Nodes (8): Decimal, str, derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal()
+Cohesion: 0.10
+Nodes (32): _avatar_url_field(), _build_user_info_payload(), get_current_user_profile(), get_web_auth_menu_codes(), _jwt_user_payload(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 获取当前用户信息(与 sys_user 字段对应)。, 获取当前用户信息(与 sys_user 字段对应)。 (+24 more)
### Community 131 - "Community 131"
-Cohesion: 0.10
-Nodes (35): bool, Session, str, _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids() (+27 more)
+Cohesion: 0.11
+Nodes (33): bool, Session, str, _append_user_scope_conditions(), apply_data_scope(), assert_row_in_data_scope(), _collect_scope_ids(), _get_child_dept_ids() (+25 more)
### Community 132 - "Community 132"
-Cohesion: 0.09
-Nodes (34): _avatar_url_field(), _build_user_info_payload(), get_current_user_profile(), get_web_auth_menu_codes(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/shanxia2.0.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。 (+26 more)
+Cohesion: 0.40
+Nodes (5): bool, str, get_password_hash(), 验证密码(哈希非 bcrypt 或损坏时返回 False,避免抛错), verify_password()
### Community 133 - "Community 133"
-Cohesion: 0.33
-Nodes (5): _coerce_optional_id(), WorkflowDefCreate, WorkflowDefUpdate, WorkflowNodeCreate, WorkflowNodeOut
+Cohesion: 0.32
+Nodes (5): AdvanceApplyCreate, AdvanceApplyOut, AdvanceApplyUpdate, AdvanceApprovalCreate, _coerce_optional_id()
### Community 134 - "Community 134"
Cohesion: 0.38
@@ -689,8 +687,8 @@ Cohesion: 0.25
Nodes (7): 1. 上传到服务器, 2. 服务器首次启动, 3. 日常运维, 4. 配置文件, 5. 与 Nginx 配合, 6. 常见问题, shanxia2.0 Backend 生产部署说明
### Community 136 - "Community 136"
-Cohesion: 0.18
-Nodes (13): Any, bool, str, WfProcessInstance, _LocalCallbackFn, _dispatch_local(), 工作流回调服务 —— 流程状态变更时通知业务系统, 注册本地回调函数。当 callback_url 以 path 开头时直接调用 fn。 (+5 more)
+Cohesion: 0.29
+Nodes (7): _product_row_to_dict(), 产品 ORM 对象转 dict(camelCase 键名), 产品 ORM 对象转 dict(camelCase 键名), 产品 ORM 对象转 dict(camelCase 键名), 产品 ORM 对象转 dict(camelCase 键名), 产品 ORM 对象转 dict(camelCase 键名), 产品 ORM 对象转 dict(camelCase 键名)
### Community 137 - "Community 137"
Cohesion: 0.13
@@ -701,44 +699,36 @@ Cohesion: 0.39
Nodes (6): _inject_user_info_after_tenant(), patch_contract_routes(), patch_quote_routes(), patch_route_file(), Path, str
### Community 139 - "Community 139"
-Cohesion: 0.13
-Nodes (15): patch_plan_product_certs(), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输), 更新计划危化品产品购买证/运输证(不触发安排运输) (+7 more)
+Cohesion: 0.20
+Nodes (10): 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。 (+2 more)
### Community 140 - "Community 140"
Cohesion: 0.83
Nodes (3): _add_user_info_kwarg(), patch_file(), str
### Community 141 - "Community 141"
-Cohesion: 0.15
-Nodes (14): datetime, _parse_optional_datetime(), _period_key(), Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend, Java: statisticsTrend (+6 more)
+Cohesion: 0.29
+Nodes (7): get_third_party_plan_page(), 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。, 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。, 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。, 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。, 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。, 三方 H5 填写页初始化数据(无需门户登录,与原系统一致)。
### Community 143 - "Community 143"
Cohesion: 0.32
Nodes (22): Any, CrmOpportunity, Decimal, int, Session, str, batch_add_opportunity_products(), _calc_subtotal() (+14 more)
### Community 144 - "Community 144"
-Cohesion: 0.20
-Nodes (10): cancel_plan(), 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。, 作废运输计划:取消跟进状态、作废关联地磅出入库单、取消运输单。 (+2 more)
+Cohesion: 0.17
+Nodes (20): Any, int, str, get_oper_log_meta(), OperLogMeta, 请求级操作日志元数据(ContextVar), 供异步落库线程使用,避免 ContextVar 跨线程丢失。, set_oper_log_meta() (+12 more)
### Community 145 - "Community 145"
-Cohesion: 0.20
-Nodes (10): 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。, 解析司机信息:优先 pl_personnel,兼容旧 pl_driver。 (+2 more)
+Cohesion: 0.33
+Nodes (3): 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。, 地磅(db)Pydantic schemas — 对齐原 simple-dibang-xiaoshou 契约。, 地磅 API 路由聚合 — REST 风格,协议对齐原 simple-dibang-xiaoshou。
### Community 146 - "Community 146"
-Cohesion: 0.22
-Nodes (9): Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签, Java: renewContract — 基础续签 (+1 more)
+Cohesion: 0.47
+Nodes (5): OperLogDetailBody, OperLogListBody, 操作日志(兼容 RuoYi OperLog 视图), OperLogDetailBody, OperLogListBody
### Community 147 - "Community 147"
-Cohesion: 0.31
-Nodes (8): Session, str, apply_product_snapshot_to_inventory(), apply_product_snapshot_to_plan(), ProductSnapshot, 地磅模块 — CRM 产品解析与快照写入。, 校验 CRM 产品并返回名称/规格快照。新建单据 product_id 必填。, resolve_crm_product()
-
-### Community 148 - "Community 148"
-Cohesion: 0.22
-Nodes (9): batch_submit_contract_approval(), Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval, Java: batchSubmitApproval (+1 more)
-
-### Community 149 - "Community 149"
-Cohesion: 0.25
-Nodes (8): download_contract_pdf(), Java: downloadContractPdf — 返回合同文件 URL/路径, Java: batchAssignOwner, Java: downloadContractPdf — 返回合同文件 URL/路径, Java: downloadContractPdf — 返回合同文件 URL/路径, Java: downloadContractPdf — 返回合同文件 URL/路径, Java: downloadContractPdf — 返回合同文件 URL/路径, Java: downloadContractPdf — 返回合同文件 URL/路径
+Cohesion: 0.18
+Nodes (26): Any, bool, int, Session, str, Session, str, _build_tree() (+18 more)
### Community 150 - "Community 150"
Cohesion: 0.33
@@ -752,11 +742,11 @@ Nodes (3): _coerce_id(), OffsetItem, ReimburseDetailCreate
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
-- **Why does `Session` connect `Community 3` to `Community 0`, `Community 1`, `Community 2`, `Community 4`, `Community 6`, `Community 7`, `Community 8`, `Community 10`, `Community 11`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 25`, `Community 27`, `Community 29`, `Community 33`, `Community 35`, `Community 36`, `Community 37`, `Community 38`, `Community 40`, `Community 41`, `Community 44`, `Community 45`, `Community 46`, `Community 47`, `Community 48`, `Community 49`, `Community 52`, `Community 54`, `Community 55`, `Community 56`, `Community 57`, `Community 59`, `Community 60`, `Community 61`, `Community 63`, `Community 64`, `Community 65`, `Community 66`, `Community 68`, `Community 69`, `Community 71`, `Community 73`, `Community 74`, `Community 75`, `Community 78`, `Community 80`, `Community 81`, `Community 84`, `Community 85`, `Community 86`, `Community 87`, `Community 88`, `Community 90`, `Community 92`, `Community 93`, `Community 95`, `Community 96`, `Community 97`, `Community 98`, `Community 102`, `Community 103`, `Community 105`, `Community 106`, `Community 107`, `Community 108`, `Community 111`, `Community 112`, `Community 127`, `Community 128`, `Community 131`, `Community 132`, `Community 137`, `Community 141`, `Community 143`, `Community 144`, `Community 146`, `Community 147`, `Community 148`, `Community 149`?**
- _High betweenness centrality (0.231) - this node is a cross-community bridge._
-- **Why does `BaseModel` connect `Community 9` to `Community 0`, `Community 129`, `Community 2`, `Community 133`, `Community 134`, `Community 11`, `Community 12`, `Community 15`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 150`, `Community 24`, `Community 28`, `Community 30`, `Community 31`, `Community 32`, `Community 36`, `Community 44`, `Community 45`, `Community 50`, `Community 51`, `Community 62`, `Community 63`, `Community 68`, `Community 69`, `Community 73`, `Community 75`, `Community 80`, `Community 85`, `Community 87`, `Community 103`, `Community 124`, `Community 126`?**
- _High betweenness centrality (0.073) - this node is a cross-community bridge._
-- **Why does `SysUser` connect `Community 22` to `Community 128`, `Community 2`, `Community 131`, `Community 132`, `Community 5`, `Community 6`, `Community 7`, `Community 136`, `Community 3`, `Community 10`, `Community 11`, `Community 12`, `Community 141`, `Community 14`, `Community 16`, `Community 17`, `Community 19`, `Community 23`, `Community 24`, `Community 25`, `Community 27`, `Community 32`, `Community 35`, `Community 36`, `Community 38`, `Community 39`, `Community 52`, `Community 56`, `Community 69`, `Community 73`, `Community 74`, `Community 86`, `Community 98`, `Community 103`?**
+- **Why does `Session` connect `Community 3` to `Community 0`, `Community 1`, `Community 2`, `Community 4`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 27`, `Community 28`, `Community 29`, `Community 31`, `Community 33`, `Community 35`, `Community 36`, `Community 37`, `Community 40`, `Community 41`, `Community 44`, `Community 45`, `Community 46`, `Community 47`, `Community 48`, `Community 49`, `Community 52`, `Community 54`, `Community 55`, `Community 56`, `Community 57`, `Community 59`, `Community 60`, `Community 61`, `Community 63`, `Community 65`, `Community 66`, `Community 67`, `Community 69`, `Community 71`, `Community 73`, `Community 74`, `Community 75`, `Community 77`, `Community 78`, `Community 81`, `Community 85`, `Community 88`, `Community 89`, `Community 92`, `Community 93`, `Community 95`, `Community 96`, `Community 97`, `Community 98`, `Community 99`, `Community 102`, `Community 103`, `Community 105`, `Community 107`, `Community 108`, `Community 109`, `Community 111`, `Community 112`, `Community 122`, `Community 125`, `Community 126`, `Community 127`, `Community 128`, `Community 129`, `Community 130`, `Community 131`, `Community 137`, `Community 141`, `Community 143`, `Community 146`, `Community 147`?**
+ _High betweenness centrality (0.204) - this node is a cross-community bridge._
+- **Why does `BaseModel` connect `Community 80` to `Community 0`, `Community 2`, `Community 133`, `Community 134`, `Community 7`, `Community 9`, `Community 11`, `Community 12`, `Community 146`, `Community 19`, `Community 148`, `Community 21`, `Community 20`, `Community 23`, `Community 150`, `Community 25`, `Community 24`, `Community 28`, `Community 30`, `Community 32`, `Community 44`, `Community 45`, `Community 47`, `Community 50`, `Community 51`, `Community 62`, `Community 69`, `Community 71`, `Community 73`, `Community 75`, `Community 77`, `Community 85`, `Community 103`, `Community 124`?**
+ _High betweenness centrality (0.067) - this node is a cross-community bridge._
+- **Why does `datetime` connect `Community 39` to `Community 0`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 143`, `Community 16`, `Community 17`, `Community 15`, `Community 147`, `Community 148`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 27`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`, `Community 37`, `Community 38`, `Community 40`, `Community 41`, `Community 43`, `Community 44`, `Community 47`, `Community 49`, `Community 50`, `Community 51`, `Community 52`, `Community 54`, `Community 55`, `Community 56`, `Community 59`, `Community 60`, `Community 61`, `Community 62`, `Community 67`, `Community 68`, `Community 69`, `Community 75`, `Community 77`, `Community 78`, `Community 80`, `Community 84`, `Community 85`, `Community 92`, `Community 93`, `Community 95`, `Community 96`, `Community 97`, `Community 98`, `Community 100`, `Community 102`, `Community 103`, `Community 104`, `Community 105`, `Community 108`, `Community 124`, `Community 127`?**
_High betweenness centrality (0.058) - this node is a cross-community bridge._
- **Are the 251 inferred relationships involving `str` (e.g. with `AdvanceApplyCreate` and `AdvanceApplyOut`) actually correct?**
_`str` has 251 INFERRED edges - model-reasoned connections that need verification._
@@ -765,4 +755,4 @@ _Questions this graph is uniquely positioned to answer:_
- **Are the 140 inferred relationships involving `int` (e.g. with `AdvanceApplyCreate` and `AdvanceApplyOut`) actually correct?**
_`int` has 140 INFERRED edges - model-reasoned connections that need verification._
- **What connects `定期 ping MySQL,避免远程库/NAT 回收空闲 TCP 后首请求长时间卡住。`, `数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误`, `未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin` to the rest of the system?**
- _1256 weakly-connected nodes found - possible documentation gaps or missing edges._
\ No newline at end of file
+ _1298 weakly-connected nodes found - possible documentation gaps or missing edges._
\ No newline at end of file
diff --git a/backend/graphify-out/cache/stat-index.json b/backend/graphify-out/cache/stat-index.json
index 7a4dc5aa7..56bb39d4f 100644
--- a/backend/graphify-out/cache/stat-index.json
+++ b/backend/graphify-out/cache/stat-index.json
@@ -1 +1 @@
-{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":1953,"mtime_ns":1780805101147405418,"hash":"d2a416ff9daedad88780cbe3f14ea75e8299044f8787afb60e731f43963dc405"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6698,"mtime_ns":1782790876685112837,"hash":"9d955a6baa70f78ddfcf29407d9711915a04e59a7f616254d06d25d25e8d0327"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":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":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2142,"mtime_ns":1781955922143413789,"hash":"f7a5b28b653aaf013aa0bbd1cdb43b11b2d131bb0f01347f05dd6e833a70ae4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":13494,"mtime_ns":1782688282110301693,"hash":"65b273c69d4271e43f64cf1c18194161a540b8b4d96f0fddf664a7f01c029350"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":10521,"mtime_ns":1782790854867576143,"hash":"a390b8d972bc8396a229437c3d41cb1c1b59fcbe8703c3ad941dcf93a9456794"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":49341,"mtime_ns":1782790898569382684,"hash":"2b5f2d5328c6764a5214772fb8c92d5e45f9598b3c294a45e99d68b1fd674195"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":3432,"mtime_ns":1780201410114958118,"hash":"3d2409f428918cd8b2723fffc456290d0a83e379cbe166727efd0e790504e993"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":64410,"mtime_ns":1781940044373707557,"hash":"1bbb3dbd12096cc1865d19081a6dda818b86d4ce5857e3a81ee4c85a64e344b4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7720,"mtime_ns":1781940045372925894,"hash":"2a396202dbcf00e42ec89ce08603028d56ecf5ebb27b1d970f57cf1d167533b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25687,"mtime_ns":1782687679595294502,"hash":"cb4567223b4b9583b7600e6460d402c111a8fec90e67cf428897ef252a22f257"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":146080,"mtime_ns":1782790898568907474,"hash":"4fd06cd88fff573eb34f63500e42bd57c7f0b0defbd5095209d852c650314d6c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1780713560843469785,"hash":"4102b586c625782b58c0a70a0c94f1c203dff427dc1708316d23a3689d78fa9c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1782830856811998217,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92394,"mtime_ns":1782687678129879389,"hash":"94aff4b2d4280f4ba4be9cefd386acdcc1a606ae46b205cd475f4ceb8220c3c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25735,"mtime_ns":1782687670600073409,"hash":"bc8ff820fa1a5489f51dcdc8fa7002b422a99cf17685c986bd3c545a3545f830"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":9943,"mtime_ns":1782687669552122617,"hash":"ada0cb556b6136f01ce775dc506fdc4949c7e95bacc39403061e3926678d6ce7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25776,"mtime_ns":1782650290493703925,"hash":"af61d162153064ffff1e5982a6cf2ee32eeaa503c9d7cccdb2b450d2a852fd92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29608,"mtime_ns":1782699376518851883,"hash":"3aca5dc6967cdc9053acdbf2e77492ee1f2bc051bee1bb8975a7902fddf310df"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":947,"mtime_ns":1780750556881768980,"hash":"2bbe961ad71f0be530f10d515b69615dbf887257028e339d4252b9ff2a5aba2b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":12948,"mtime_ns":1782650889956458001,"hash":"77c095afa461633e94b53251a56e21eed062e782f3840e3c45cf236455a8a08e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":23511,"mtime_ns":1782650816661262992,"hash":"d1bb54d59a883c55557452136a90d9fd84b48723ccc20e1d21df5cbac8a86b6c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":14335,"mtime_ns":1782650896565026655,"hash":"55870f2bc8915bde300170a348ad618b643b9f336a31db9bf696c5a91c3d34e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":31828,"mtime_ns":1782650853672299046,"hash":"90c00fb41db1ce773bc614733537e1b482668371e5dba718d49183a8ea1d68bc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15489,"mtime_ns":1782650926105833811,"hash":"75dec97c786b6f8de40eab585afc22e78c0522146a98471fde00913d21191bc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16242,"mtime_ns":1782687686937970300,"hash":"14f4705ed9ca680e3c345357bf70c62bcfe77670d8da8f0911b5d0fa5ca26e55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":16891,"mtime_ns":1782687687550624191,"hash":"8ee70d9f9a6e169c1340d6f5874db5aafba3dfa36f68354ac5e15a9a3e294ec3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":56875,"mtime_ns":1782793455702940883,"hash":"7aad1323fbf1b7b2d9b10ee286abbe07dd83b9f14a013958caf633cae5f50503"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":18566,"mtime_ns":1782793472102045743,"hash":"55e2c1f94d7026eba0605addb9d548296a633c7ca54c98ff3db860df37dfa951"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":14595,"mtime_ns":1782793487671617034,"hash":"7bf91be009b835f1399914ee616dc3a2d0597c11c508c7ea02ac837877ecb8ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":4948,"mtime_ns":1782831660116952101,"hash":"f93af54f86cff3b3978e255d215dae56b6c3143fef2dee10372d75218627a9ac"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":10581,"mtime_ns":1782697952631453933,"hash":"2079244426b557a8e22e3237ea38f93355944a404be11b9b4a4672854e0fcd66"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7582,"mtime_ns":1781880505308870220,"hash":"c88a917677bcb18c0d2c906d6953a49090d09736c1989ed4c68cab8566183135"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":35328,"mtime_ns":1782793517018069786,"hash":"efd08d525ffeb9fd0658ec5f5d48acbbb59a8580c63beda2e5f8dd81c0c5d6c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":32928,"mtime_ns":1782793483046418008,"hash":"158a194986219cdcfa88ea6c7bfd26b2326c1e4443489045ac396daa5ecc1bf0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1006,"mtime_ns":1782696220861286464,"hash":"cc336157a12b45aa7ce7b708f21a34590440f184cea52fa70d1b2d54cc5056fb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10545,"mtime_ns":1782788621300068361,"hash":"6e153316ea3aa04c64aa8ccfdafc43e7c9bbb975f5d2ead10670a71b01a7a5e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":30218,"mtime_ns":1782831664104134981,"hash":"885b8fdc78c77b2bf6bae5aaf34438d4a7f12fb700947cf09fc3aafa26c2ae1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":12309,"mtime_ns":1782650609142639025,"hash":"9c6a5dc8bbad57fea5e93ba3347cbad1acef1439ed13e316dd723f57ce035149"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19186,"mtime_ns":1782831660040629717,"hash":"9fd2dc4fac0dadf0f19caf0ae4e469f2f1939cd38179d01036b35dffc9c0ee7b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6362,"mtime_ns":1781880523198345970,"hash":"189cd50c299ef5bcd983c813612c997cce4b65e5fe95fbb5dec079902bd1e79e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":6466,"mtime_ns":1782691225897027238,"hash":"85feb88966fb6a222428326ffd1dcf10781a2736b16917bbbd9dfaab358ed6ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":28452,"mtime_ns":1782793470812455347,"hash":"eab4845a8aa03e4d3528c89d9a235ae9c1ed0b788ffdd7a0f9dd886c12953df1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":7660,"mtime_ns":1782790898570380855,"hash":"366fd72fdf68e3a1945ae4a7f00d967fe5d2497896f3368517f1767a55b76751"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":12594,"mtime_ns":1782227851746783133,"hash":"f8629d807f7e4fcf21530e1660125d93a2b422110a780896ff97d7aa99382a41"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1417,"mtime_ns":1782219580518873800,"hash":"5ea0cd3fb0da8a327b247bf7b838e336eec6cc47558541e20e1c2b1ffa1bcab7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":5866,"mtime_ns":1782790898570081187,"hash":"73bb5f9fd0f9504e38c482b047e956b31ecc1531f4bdd1132e5b7fc462d34d66"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":37063,"mtime_ns":1782788629690480999,"hash":"6e2e69f1147ea335b3571ddbd5d042cba48e6bb8488764f90fea25a94c57876d"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3677,"mtime_ns":1782690588279931260,"hash":"fa310dabccb44c964223254c1195ba4b1a9f61c77efa626eca10e32a9da3d29f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22549,"mtime_ns":1782694172247240480,"hash":"4b40ddf0c8b1abcaa002bdb29411120c54c500067e2c0c9bad83638c06f12c56"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23216,"mtime_ns":1782695447519129687,"hash":"0c1e630117fede22616c445ea1348e75546f20932900a6a6551d840340b82ce9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"}}
\ No newline at end of file
+{"/Users/zlwu/work/00code/shanxia2.0/backend/start-prod.sh":{"size":7357,"mtime_ns":1782639355476060453,"hash":"ca89869446be74a2bf2367b3b28f448580220859a39a84ad9613ac5fe35a8433"},"/Users/zlwu/work/00code/shanxia2.0/backend/start.sh":{"size":9548,"mtime_ns":1780114661446983244,"hash":"4d632863e8a0cd81194b491d83a0218a4157435ae812dec76a6f6197b4d48e57"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/__init__.py":{"size":21,"mtime_ns":1780113982281973984,"hash":"60a04ff08fd97084e83ea809fd13feda6d2848be20ebf309e31fc1dad7523230"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/main.py":{"size":6280,"mtime_ns":1782790852770448643,"hash":"8f9da799977bee7134d87a26ff8434ac5ef8eabb0b7368dd537eee49ad7fd00b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/__init__.py":{"size":1953,"mtime_ns":1780805101147405418,"hash":"d2a416ff9daedad88780cbe3f14ea75e8299044f8787afb60e731f43963dc405"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/auth.py":{"size":7457,"mtime_ns":1782790841500516545,"hash":"34bac56e1c2cb6215f4b5fa2dc32d77d4b4abca51428819eebf4afd269cc51cf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto.py":{"size":1870,"mtime_ns":1780108930724444498,"hash":"c04b748aea86890a5971f749523c7b17dbad1ddd6f9f7f07a5679d159c984e33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/login_crypto.py":{"size":3858,"mtime_ns":1780108930725155710,"hash":"b82d51afabf2293a9cb1fb2e5f994c383948e7f47ea95fe674686b4f3f3342b1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/config.py":{"size":6698,"mtime_ns":1782790876685112837,"hash":"9d955a6baa70f78ddfcf29407d9711915a04e59a7f616254d06d25d25e8d0327"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_pay.py":{"size":23585,"mtime_ns":1780108930725768130,"hash":"3d52265ce65d21e7103f94afa1e8547aee0823b5ea6d65c50317436ac81fb4fc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_request_log_middleware.py":{"size":11971,"mtime_ns":1782701669198208175,"hash":"0b84c32828939e6102bb3647691fa8f04b1f68e0e0e9f28127374cc44e19a11c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/database.py":{"size":1510,"mtime_ns":1782790847265601586,"hash":"8bc9c8ae62e2be2c6920036582ba448dfcd1711c41cebb62274ff6bc6ee14b0b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/security.py":{"size":728,"mtime_ns":1780108930725470004,"hash":"df0f01115064f7b8de1c81dbe9a6db39360c236610b68c33b3234a51d7f0025b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/request_payload.py":{"size":2842,"mtime_ns":1780108930725350836,"hash":"e9937151530ab1417ef297aef59111977725cf90be2a8fa76c00a0618789aba0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/__init__.py":{"size":61,"mtime_ns":1780108930724312414,"hash":"3dd1842ee59b0c804176b03b4b8a323bd4a252b7feb1bbc32db64f3a8928570e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/response.py":{"size":1824,"mtime_ns":1780108930725412462,"hash":"f1739352d65ea8287d76e282a59553aa8d63c97e35764c64ac378aa5bd9c347e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/menu_guard.py":{"size":1611,"mtime_ns":1780108930725223002,"hash":"3e26077288c3620a4780038b891a326206b45bffe00aca545bdae30172487235"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_collation.py":{"size":548,"mtime_ns":1780108930725025043,"hash":"0c680e25a18244ca839a7de6ed1f4313b33bc8da118d89c463aee1b6af00c6f9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/context.py":{"size":421,"mtime_ns":1780108930724824458,"hash":"83a10aee67162374993c10a30bf8bb8bd9c4b35cf48f42c832415ccebd91660f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/utils.py":{"size":1498,"mtime_ns":1780108930725607296,"hash":"09323693661c1d4560458b86a954128ccff82bbaf6522da0b44f24da99ddf9ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/storage.py":{"size":14141,"mtime_ns":1782855136810943216,"hash":"3ae2c413c10898a8adb3d6773870bafbfbc18c739c10e0e8b4f765b4b5ca6c08"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/order_status_compat.py":{"size":2828,"mtime_ns":1780108930725284669,"hash":"5349e5a0745ee6734c4a995337779307adefc46f453906171988a77de2081540"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/exceptions.py":{"size":4946,"mtime_ns":1780108930725084335,"hash":"79c997d964bca1a4f12f2b92fb1f181fdb9e2b3cf72eae39f4cc164d23794fd7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/data_scope.py":{"size":8043,"mtime_ns":1782648925694296304,"hash":"626dff86937e5cacec634ecbc61cd53d3763d760223a1d4ec7cd11f64e59a220"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/admin_request_json.py":{"size":2669,"mtime_ns":1780108930724378914,"hash":"4f68b3cf84291e7bddad6ecf4bb4d29ca5e1ec246a9f7f9c4cf5909d0ec1174a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/api_crypto_middleware.py":{"size":10876,"mtime_ns":1782790001926627098,"hash":"b39f128b6612589ea6ac5babd30752e9585b3af07b82bb1ad53c9e3c0d90816f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/wechat_message.py":{"size":11194,"mtime_ns":1780108930725684255,"hash":"5086070deb14d99d1a69e419b2299ec4ea2fe128de80fe321b0c3c531fea7a88"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/models.py":{"size":36012,"mtime_ns":1782699345666495916,"hash":"01f974f182660ec4f215bcacc31eddadd7899d60d95aa19a61046579a994512a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/__init__.py":{"size":2142,"mtime_ns":1781955922143413789,"hash":"f7a5b28b653aaf013aa0bbd1cdb43b11b2d131bb0f01347f05dd6e833a70ae4a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/base.py":{"size":2090,"mtime_ns":1780108930807298966,"hash":"fda71bbe87dcb29c6f0ffa9337e9f39c2c06d912df6cb75d521f0e87c7c73c6d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/auth.py":{"size":1315,"mtime_ns":1780108930808197763,"hash":"018b82e42bbb055250549c54ba700ee01cf28cd753397d6c162f9e60185908e5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/user.py":{"size":1911,"mtime_ns":1780108930810184774,"hash":"3d3c159018cab6ed1cd3de7034ffb1fe77a272b9099901a1882d07aa15fc90a0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/__init__.py":{"size":1159,"mtime_ns":1780112973062398026,"hash":"4e8b0bda6680e2c8740c380b96eedb859ddc584a81bad568a18ba6beb001e480"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/menu.py":{"size":816,"mtime_ns":1780108930808681891,"hash":"17e35f2d7bf95cac00d81357f69fdcbe849e855daa05570c3302de8182b4df11"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/attachment.py":{"size":328,"mtime_ns":1780108930808144846,"hash":"300b74c51c66cb0fbf8c9f4d84a4b7bf29dcc9b6a67d922f8e1d0df05f9fc5bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/common.py":{"size":555,"mtime_ns":1780108930808426681,"hash":"caa0c03398e54017b25cca2a16cf8d232a59739893a16e4c33b51a5316d8964f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/workflow.py":{"size":3949,"mtime_ns":1780108930810245983,"hash":"e5aed7afcf903c838a35cdaf2230a93d221c63f5c6baa1497e455afac8587a9a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/leave.py":{"size":1449,"mtime_ns":1780108930808614098,"hash":"c54098a69bd4490290dd8d7809ed8764a3f38e8c38692eeef2b505293cdfaeb8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/sample_code.py":{"size":12322,"mtime_ns":1780114002126415047,"hash":"5b74838b3920f9182d092f8a1b721697f1a62e8b90728b9f54101dbb96baa40e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/post.py":{"size":5164,"mtime_ns":1782688288640487823,"hash":"370a7c2b5de64c6b72f98bcf7fbbc166ba2a7f5673c6e1426b10bcc88220bb27"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/user.py":{"size":13494,"mtime_ns":1782688282110301693,"hash":"65b273c69d4271e43f64cf1c18194161a540b8b4d96f0fddf664a7f01c029350"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_type.py":{"size":5537,"mtime_ns":1782688289303121533,"hash":"f4edc5824466d0096b3b70aeea7b4460a9fa54ca0929421759b625b60c56c505"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/tenant.py":{"size":5659,"mtime_ns":1782688281816798167,"hash":"0192db8ac9c3de42fe8ee58324c77111e152bf4c35fd15c0b16467fe243712f0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/biz_no_generator.py":{"size":2534,"mtime_ns":1780108930726090799,"hash":"e6bd375987e47f6ee80294686db64377938a286767bb28324f3eda2ad39ad546"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/__init__.py":{"size":169,"mtime_ns":1780108930725878047,"hash":"340e3c08174d61829012879e684f6166803b88c819c58b54a16a11d210dea85e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/role.py":{"size":9417,"mtime_ns":1782688282481859519,"hash":"008550fe8efce5310afd3d41d944cee4b68d71763a587583f8832855480477f7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/menu.py":{"size":7600,"mtime_ns":1782688282878700273,"hash":"36951a77088782d80500bfa6266b46a564a670e10b70af7a28cdee8c50741098"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/site.py":{"size":6525,"mtime_ns":1782688288935534527,"hash":"a7bf593eff76d08b338f48f9a035fa1493f4ca88867bf9fdf4e9af06b6165759"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/api_request_log.py":{"size":4562,"mtime_ns":1782699354647000111,"hash":"f233bde579c4f6c7f2fd6030878c5946fb5dd5e247efaf4fe80d3f48622c19a8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dict_data.py":{"size":5418,"mtime_ns":1782688289691482227,"hash":"5bd3fd93c60956dab0268e9f4e6cf315d0a9c9656d649f4abb40858ba1d32911"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/ethnic.py":{"size":1012,"mtime_ns":1780108930727448890,"hash":"7de1eb94b9fbb897a7b362ffdb5df5ab1020aa7247c7c37a2a2a2aa5cdbac8ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/workflow.py":{"size":25052,"mtime_ns":1782688290021142467,"hash":"6ca7e3b79e91356a050592b768d7a6749e1bfdb2841a208c7235899603368aec"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/dept.py":{"size":6604,"mtime_ns":1782688283203296227,"hash":"ebb38fcd527fdac4dcbf0632ac926e4cbe95dddb5fab79c3142b010e7a48ea7e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/base.py":{"size":5360,"mtime_ns":1780108930726010257,"hash":"49fdea023825ea249923b1cb02d353dcede1850158d3555a2082887925e69b9b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/leave.py":{"size":4765,"mtime_ns":1782687678100096646,"hash":"847095009bddac2d77dcbb485bcc57cbe168ff874989c197f49f2a28675d2525"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/public.py":{"size":10521,"mtime_ns":1782790854867576143,"hash":"a390b8d972bc8396a229437c3d41cb1c1b59fcbe8703c3ad941dcf93a9456794"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/__init__.py":{"size":665,"mtime_ns":1780804649232229595,"hash":"f720195209c1783d8b2526220a086c2ae2769d76a12bd7df74136f5432c7b75f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/menu.py":{"size":30932,"mtime_ns":1782790854866245387,"hash":"4e9de047e67ff365d17ac28d30e1baa72cfa3c651caa1b9776e225fc07da0e58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/admin.py":{"size":50055,"mtime_ns":1782855138852859245,"hash":"a5e74057222e3359f6077b2fd05b2db4d058ec2702243cc449bff8d448d44a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/workflow.py":{"size":21202,"mtime_ns":1782790854865038715,"hash":"3950dd8d9855f5ed33a0e15883f7e442c4e26bc51672209b1e68ce0d0c9ce399"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/leave.py":{"size":6916,"mtime_ns":1782790854865571301,"hash":"6e03239433bbaecc54f72fa2aba2578573ae6c7fc881f287ef57dafed1a0f1b5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_callback.py":{"size":3584,"mtime_ns":1780108930810395025,"hash":"a033c13c7bee7f4b636198c1efa47f2abba0d890657e52b0b7057568d4d83a52"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/workflow_engine.py":{"size":14042,"mtime_ns":1780113992914903818,"hash":"5c06a59c734f598d5c7ebe95d30f048ba3a97302b938bc9320d97e5a053c7aef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/web_auth_roles.py":{"size":3432,"mtime_ns":1780201410114958118,"hash":"3d2409f428918cd8b2723fffc456290d0a83e379cbe166727efd0e790504e993"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/ws/__init__.py":{"size":26,"mtime_ns":1780108930810617026,"hash":"d4357444e9b5b0a8593000fb6e4dc37469ebe008e675bf42ec0d55d463f88fc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/README.md":{"size":2752,"mtime_ns":1780114581291841672,"hash":"f5def8d25af0556a443c31a73e81f958883b60cfed8b31fac457f2832c2b6d58"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/crm_models.py":{"size":64407,"mtime_ns":1782853112731239708,"hash":"be8cdc5ad527073abc08a9792b243ca6f68f11bb870aa8df3fb5c3f8bf1498a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/__init__.py":{"size":0,"mtime_ns":1780201410213315055,"hash":"a6d57250b43cbdecb56b7a9d55d29642b808be368733e14b7df2bd196f54d64d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/product.py":{"size":7800,"mtime_ns":1782853111922556914,"hash":"4fc5d8c71b1436b49694727543255d3849bbb7ea07c11c7dd858edf58f613b66"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/__init__.py":{"size":0,"mtime_ns":1780201410210254759,"hash":"9b8fcaaabdc85883c9ef392b596b60db0bd3b2f1623fc8012e55003f234a9875"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/product.py":{"size":25852,"mtime_ns":1782853124084966567,"hash":"ec9fc66a2fbc240fdbb026349c2118d7b7243b61f789a22efdd51e0a0016c8f6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm.py":{"size":145670,"mtime_ns":1782853126280467400,"hash":"b22b57b7386bd377244de5278b5dcd9f1947ef3bb39060c6b7232e577e20dc8b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/customer_pool.py":{"size":9646,"mtime_ns":1780202350147822837,"hash":"4f0ab87e7a12534011b69f58079ca206d5443eee594849ab4aae728bb847de0d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/tenant_context.py":{"size":693,"mtime_ns":1780201410210198550,"hash":"0a810658d894d35b9e981faa1448e1d02d617ecbe563bd711f6ce5a8f9db1861"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/pool_rule.py":{"size":1848,"mtime_ns":1780202212734233591,"hash":"b0331e17e801d206fba2fa89df1a66d1758d850dc5547e076218e16c8211a3e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_pool.py":{"size":1340,"mtime_ns":1780202198698231150,"hash":"7a6b76e0e39ada0783dfbee92280e9f06299b6662b08abb13ab1b0d9c70fe370"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer_follow.py":{"size":3716,"mtime_ns":1780201410213934514,"hash":"3979cecd62a4f2ee5dd925639572208e36b397620d91a9ce49a59adfcb2a9d55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/customer.py":{"size":13811,"mtime_ns":1780713560843469785,"hash":"4102b586c625782b58c0a70a0c94f1c203dff427dc1708316d23a3689d78fa9c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contact.py":{"size":4856,"mtime_ns":1780742840975948859,"hash":"60c714cc254d70f39b43205bbcb7fb4c563e807ddd070eefaaa952ae96048377"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/pool_rule.py":{"size":8816,"mtime_ns":1782687680547203228,"hash":"779f7f46e7ef8bfba27390d56fa071dfd3a8446d9d3b3361003b1c239f7169aa"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_follow.py":{"size":8121,"mtime_ns":1782687665525772610,"hash":"ec67fc7667847017a8d8b5a276f5c75328bda7fa360746d80c7890de3f6d4b76"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer.py":{"size":23825,"mtime_ns":1782687664490640155,"hash":"5d8934ae6318de87b0761686fe491a7ec2be02792a85d84308c383af3193fa8a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contact.py":{"size":10482,"mtime_ns":1782687664918872966,"hash":"f4e3a684dd7a6c7c927e10e8e1e0c108c151b963777b85c5b74d7e7871f3a438"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/generate_dict_reimport_sql.py":{"size":10692,"mtime_ns":1780201410245078685,"hash":"a4faaf61f246dad04ec3933083ab4348e5d2987ae1ed34b1f6d8f19535642a05"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/statistics.py":{"size":412,"mtime_ns":1780201410215906642,"hash":"fb1957d0fe87f22c37ba5bdaa5f3bf2bb4a40685a21a05dce98326581bb4844b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/customer_pool.py":{"size":3725,"mtime_ns":1780202237342131933,"hash":"0f26ac2bcb585241f25302787184db4db422934e5d896ca25bbe7efaf61d92c4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/statistics.py":{"size":5642,"mtime_ns":1782649310467813967,"hash":"f954dc5479f42a52fdb3f05ad9076fdbe43e569bae85299fca6c8f37c7323cde"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/invoice_info.py":{"size":3104,"mtime_ns":1780406386885207867,"hash":"a59df3aed2c976904e3b5325fedd1621435b322645aa71349f3356e0cdc17424"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/oss.py":{"size":1584,"mtime_ns":1780201410212966513,"hash":"9349799b02a3531d8e1b46f9f70d3b6630afd7306663c779bd11f25448a16013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/invoice_info.py":{"size":7446,"mtime_ns":1782687666050313280,"hash":"e0f2069c43cd272e5f061d30b47a42140ac37aa26379985fc781f8a3851aa44d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/opportunity.py":{"size":9391,"mtime_ns":1780242127112297110,"hash":"2e068961824a1d3ec0da0a94a3c494b63582b3251e5f4e030ce3e12897e85002"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract.py":{"size":10565,"mtime_ns":1782857094957860296,"hash":"45d9dfeb58bda22227fcd242c738086431616466bb8ee9f1466927d75d4bec48"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity.py":{"size":42231,"mtime_ns":1782687666592409903,"hash":"75f54438002e070076fe37ec2211c5fd67bf4aebd2607ac94db15e30d6f634d8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract.py":{"size":92394,"mtime_ns":1782687678129879389,"hash":"94aff4b2d4280f4ba4be9cefd386acdcc1a606ae46b205cd475f4ceb8220c3c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/__init__.py":{"size":1,"mtime_ns":1780242127108406092,"hash":"bb5b318d3cb224c50a2e0286e145f89ea7278437437fd17d7c865d67ad148076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/monitor/operlog.py":{"size":1069,"mtime_ns":1782699353340106185,"hash":"b9f0a382f8990f69391b26bb75b4538d141d6adadc4260fecaa8b33cb44c063d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/__init__.py":{"size":1,"mtime_ns":1780242127112307360,"hash":"0592c62ce1172d93aca98cbd9aaa54b9c2668022abf3581249516472db312293"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/monitor/oper_log.py":{"size":6673,"mtime_ns":1782699352542520022,"hash":"0586702734f693ee099af38d407c71cc0a840153f93174699c5a5201e0a9acbe"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/monitor.py":{"size":2789,"mtime_ns":1782790854865860510,"hash":"5c13164e49d7ecb6836cf8e65a705fccd518399b85d3be2318c9581a98bacd51"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/clue.py":{"size":9417,"mtime_ns":1780215022189075651,"hash":"2676afaecac4bb6da185674a9421dfbd40834ca21520adf66bb6b175fb728677"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_follow.py":{"size":8493,"mtime_ns":1782687674053739962,"hash":"54881f876d1842ee4a344d049ea4b5bac18b243535338077cb3eb3ec8b60e9c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue.py":{"size":25735,"mtime_ns":1782687670600073409,"hash":"bc8ff820fa1a5489f51dcdc8fa7002b422a99cf17685c986bd3c545a3545f830"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/clue_statistics.py":{"size":11229,"mtime_ns":1782649305846991404,"hash":"fbc3b4f3356256787839cc5b2a6f8dff41dcf9eb27c791e427e816e3ba14e094"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_follow.py":{"size":9943,"mtime_ns":1782687669552122617,"hash":"ada0cb556b6136f01ce775dc506fdc4949c7e95bacc39403061e3926678d6ce7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/opportunity_product.py":{"size":10346,"mtime_ns":1782687669972916544,"hash":"40b497a41ce4003e128dc305abedc54e01dbaad8a8f7bc1ecec1662a3953a1ed"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/crm_export_columns.py":{"size":9594,"mtime_ns":1780743830255260394,"hash":"b20594507aab09cebc3d540acad04547bf780cac9c885187138f5d64718ed513"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/__init__.py":{"size":0,"mtime_ns":1780242127043319167,"hash":"a66deceefc987198863f61b8aa1b5715483a69c4a15ef47cd5586c5d8e429b97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/excel_export.py":{"size":4411,"mtime_ns":1780242127113233948,"hash":"7fbde3fca845e4705487e7f801caee308bcc0c99a9da7d0c99681a96eaaf6076"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/supplier_info.py":{"size":3679,"mtime_ns":1780242127112269527,"hash":"8b797e9dee6ac7ff806a8ea23bef5fedce648502ea23287e1b417e9f96d22c2e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/supplier_info.py":{"size":6916,"mtime_ns":1782687684650105460,"hash":"0b66714e36609688f7ce79ecda0679d20df115d2d64a0dff1cc0fc76df7dca6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_product.py":{"size":13126,"mtime_ns":1782650413581368849,"hash":"cd2fc23852ead3c4db19e34bc33c1560fc5f5d4cd7cf51b61def8bf37c44c853"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/quote.py":{"size":5961,"mtime_ns":1780745856749183842,"hash":"29c52786df396aededd0850e3c8a3a36f3fb6a952af03adbe1768dae212b6804"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote.py":{"size":48137,"mtime_ns":1782687675213433843,"hash":"a2ff5c5b74a2becd0949aab6aea8cf63440cce2c0bb22e1a1661463e0b2e963d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_product.py":{"size":10537,"mtime_ns":1782687676011228777,"hash":"57d9d5b4fc2bc8b68c0388a4b8a9c1322539ed7e538764fc23521916429e07c5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_share_log.py":{"size":4277,"mtime_ns":1782650254630170341,"hash":"5bfbf7ce2918f9ecdbbca6fdce17d200cd52cdc71b2dfb44ac126a36ca0ed734"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/quote_approval.py":{"size":8816,"mtime_ns":1782650314936479798,"hash":"736353b8c2c5073d260e007a166234bd7d57958bcc738c56a1d39cfb22381180"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/crm_quote_pdf.py":{"size":9877,"mtime_ns":1780242127112382277,"hash":"fec04892fccccc3601fbeb012c92c77110496910be44102de40b4610148fa58a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_quote_routes.py":{"size":25776,"mtime_ns":1782650290493703925,"hash":"af61d162153064ffff1e5982a6cf2ee32eeaa503c9d7cccdb2b450d2a852fd92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_approval.py":{"size":13958,"mtime_ns":1780763324103831772,"hash":"3d7fbbb90728568a2577e52d8986ccbec8f599d04a0ef9e330939d1fe729bc98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_routes.py":{"size":29608,"mtime_ns":1782699376518851883,"hash":"3aca5dc6967cdc9053acdbf2e77492ee1f2bc051bee1bb8975a7902fddf310df"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_template.py":{"size":2897,"mtime_ns":1780229101351431207,"hash":"935adfc7659e31201cd83ba8387bf6abcb39e7cdc63fa4692d699ed874cf113b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/crm/contract_change.py":{"size":2496,"mtime_ns":1780229100306468735,"hash":"05af42f088f6cc400c1e3445d4a2c96670edf482328b361aa4f231230d958729"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_template.py":{"size":11858,"mtime_ns":1780229131746659196,"hash":"b9bdbe6a33c933aefcb25cc57e94b2fd2dc75f8e5822434f3912aa0153dfca00"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/contract_change.py":{"size":15985,"mtime_ns":1780229123819597506,"hash":"771b110d3d136c45106dd61171c724c559b5b4bf572ea7b8c2b648f0bfe629c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/crm_contract_sub_routes.py":{"size":25165,"mtime_ns":1782650354912882614,"hash":"b2733fd74cb7e6cbe6518fc5a5700e387601afc087be09f395f3c61372099847"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/attachment_biz.py":{"size":1122,"mtime_ns":1782219602888987090,"hash":"fb9fea8983524e3891357016b6546d982c4a82cb782fc01425f70472d4338b6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/bx_auth.py":{"size":1473,"mtime_ns":1782650780925056463,"hash":"678d9ff99b5c89575ef47e5c9e61d495f364917fd6cfb2b322c4d5035d3ba359"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_date_range.py":{"size":947,"mtime_ns":1780750556881768980,"hash":"2bbe961ad71f0be530f10d515b69615dbf887257028e339d4252b9ff2a5aba2b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/utils/bx_codegen.py":{"size":4679,"mtime_ns":1782003396630684570,"hash":"bc3f798cfbc359e0327d72e3c0513fe9cbaee196d0d85bcf6567cf5df4211d97"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/bx_models.py":{"size":16644,"mtime_ns":1782003187247224106,"hash":"37c7372f38d76f1020d31ce8ca9e7f0cb3bc3c204a50deb092b494ce8c983fbf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/__init__.py":{"size":81,"mtime_ns":1780750556881734563,"hash":"07c3422f745afbff1c8162b3782fbb4b8de65084e7e9bbcf45abb9d433d65f98"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/common.py":{"size":1547,"mtime_ns":1782003187605255900,"hash":"a75ca6a0d92f93408eee00cc5053206d28a545512e4cd0f186be9e00e3346ab1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/__init__.py":{"size":777,"mtime_ns":1780751360180065853,"hash":"3525eb716c238682a07a116818d318b8a494fb24b9cefca5114d30bc50d095a5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/expense_item.py":{"size":1668,"mtime_ns":1782688293668634639,"hash":"ac07c7b05fe990e743dd5b4e96a85b59431479ca11b98cce7c340a93dbe99ce1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/workflow.py":{"size":1677,"mtime_ns":1782688293973889288,"hash":"f683e5bb7a45d0bae3b3f262c201453155eaaaf2c8d7f14f567a14295a68d2e1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/expense_item.py":{"size":3362,"mtime_ns":1782650913604714906,"hash":"c6a142011870516822cf11cff16a86c56908f00680eb7c6219c8441c9b63632a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/workflow.py":{"size":4984,"mtime_ns":1782650913326708063,"hash":"84285aab7499ce9280156c5814b2dc4fff42841803dd673cc6bfdc6eed498283"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/expense_item.py":{"size":4366,"mtime_ns":1782650887981843546,"hash":"15321fe1df77a555af579474434e3b401bd042555d19ea81a066ef754915612b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/__init__.py":{"size":34,"mtime_ns":1780750594045301798,"hash":"583b12a6d2c9fd4411b652741e73324df9256138946ee873a0ed03169f8dae2a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/workflow.py":{"size":5446,"mtime_ns":1782650919964956073,"hash":"1d72733147e0ed997094d7f92d1c1f5e1e108093a50e8e523b3b016c3dd676e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/base.py":{"size":3931,"mtime_ns":1782687617846731919,"hash":"dba80b8f4e26bc59efd2b2aad6bd430c0315133a98bfbbe1b93113b60baba8b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/attachment.py":{"size":525,"mtime_ns":1780750871480000584,"hash":"f287214c72345e41d9d122ca55b4d3e279635d99cbf10ed530de0ac32374f31c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/advance.py":{"size":4603,"mtime_ns":1782688296833335474,"hash":"74b6e8bf6906518f80f16f218f1af74d2c356a6f392a4e8a69466f4179ce0b92"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/attachment.py":{"size":5758,"mtime_ns":1782790898570675189,"hash":"e88b9181e7c1a839074656ce2260cd6f693821402a24f08dd1c0ef3c160f8fa8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/advance.py":{"size":12948,"mtime_ns":1782650889956458001,"hash":"77c095afa461633e94b53251a56e21eed062e782f3840e3c45cf236455a8a08e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/attachment.py":{"size":4582,"mtime_ns":1782650868959755751,"hash":"3a6480cd051bd1af733a67e5babcd64f3f74cbe230d72364b599cde8b0c67a5f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/advance.py":{"size":23511,"mtime_ns":1782650816661262992,"hash":"d1bb54d59a883c55557452136a90d9fd84b48723ccc20e1d21df5cbac8a86b6c"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/storage.py":{"size":3656,"mtime_ns":1780750869826924187,"hash":"ac98980bd5b6cbab6a9394b6debc678b050cf4df969eccbc5f2d419b615937cd"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/bx/reimburse.py":{"size":5638,"mtime_ns":1782688293517624966,"hash":"aa47d8e87982a4077ff067dff2955db9eb67171d6368bc636c1eea17ea7682f1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/reimburse.py":{"size":14335,"mtime_ns":1782650896565026655,"hash":"55870f2bc8915bde300170a348ad618b643b9f336a31db9bf696c5a91c3d34e8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/reimburse.py":{"size":31828,"mtime_ns":1782650853672299046,"hash":"90c00fb41db1ce773bc614733537e1b482668371e5dba718d49183a8ea1d68bc"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/bx/payment.py":{"size":15489,"mtime_ns":1782650926105833811,"hash":"75dec97c786b6f8de40eab585afc22e78c0522146a98471fde00913d21191bc6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx/approval_cycle.py":{"size":1296,"mtime_ns":1780758200904804714,"hash":"308c087d94ac253bfc7e2d5455a06ae8ceac034adda41b5c61dd315dc167efaf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/db_models.py":{"size":8110,"mtime_ns":1782219570945208920,"hash":"249bb0971c263436095a6324457557b6ac5cfc3ca5ac9bc9499a9b4cd21d42bf"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/__init__.py":{"size":544,"mtime_ns":1782011200096708592,"hash":"822060230e155b8704feb447b908c226d4c53e62b3e6df65c89dc3c7a0e6e07f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/__init__.py":{"size":0,"mtime_ns":1780805614160787709,"hash":"2cb780fb722e6dbf2ecea6f6fc19345fb453e1a3c40694ba0ff7465eb7cf7d33"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/base.py":{"size":2754,"mtime_ns":1780802262496001324,"hash":"d2fd88aa376aa5914125381cf61a4ae0f343657d6bd7db1f9fe1254e7aba5b2f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/vehicle.py":{"size":591,"mtime_ns":1780802980783200520,"hash":"d87e4262b344e02a7be21534e382e7b75f5543f599d673ddc046134ad0e8ba4e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/__init__.py":{"size":84,"mtime_ns":1780804619867600032,"hash":"5193d61f7204f825551f083e79722805fb2abfd953bb552e80950bb3ff9784a1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicle.py":{"size":3780,"mtime_ns":1780802985736476363,"hash":"aeb49bdd49cb5091c37275b856396e75bcd24557e3a1b58ef668910b1b0aff64"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/vehicle.py":{"size":4776,"mtime_ns":1780802999039302982,"hash":"cf32c66499ca86285561b573d222837ecc76c3fa51b0091b802485fbde8e2bf2"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plan.py":{"size":1788,"mtime_ns":1780803836065964235,"hash":"30452b2f7fa19f5677475ce08b3e355dae2440d80d2e9049f8417de01d822863"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plan.py":{"size":4167,"mtime_ns":1780803836065953735,"hash":"acac159dedfacb36f02982b700b2a7c7a8fbb4644eb89c3b0c13871941917864"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan.py":{"size":9619,"mtime_ns":1780803836065902943,"hash":"e311f2b8b5e7785db764216fbecfd2830a11569ccb827a00c8bd3a2ba3804383"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/inventory.py":{"size":3948,"mtime_ns":1782219604456801044,"hash":"19ea80e59a1309518ad6183a6b0b8751401f4724d7b5101d47defc2417ec36c8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/inventory.py":{"size":16242,"mtime_ns":1782687686937970300,"hash":"14f4705ed9ca680e3c345357bf70c62bcfe77670d8da8f0911b5d0fa5ca26e55"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory.py":{"size":10663,"mtime_ns":1780803878293678536,"hash":"e38abdd78010b0e96dcb65ed826de03a752b40e3355546ed06a4b07640cf7013"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/weighing.py":{"size":5347,"mtime_ns":1780935341753643087,"hash":"f734c66269b713a840d7ce6c1c6150bd2dc00b114b09963362202d119c82301e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/weighing.py":{"size":14940,"mtime_ns":1782687688848020877,"hash":"71d143eb05d0d3f785f5962892bde64dee3c2937139c975b52af62628f308d46"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing.py":{"size":24042,"mtime_ns":1780804029884092079,"hash":"bc9d5cb59bf90597db0e0a1c9afcef5c2b429c3945c92be34bfdc1e77d26ba28"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/db_auth.py":{"size":2500,"mtime_ns":1782790853674329877,"hash":"4988b71d4e54b326c333872b34743914d67b15fb753c1b0231e9b00b366458a4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/plans.py":{"size":4876,"mtime_ns":1780935329287069452,"hash":"474cb68905249cd5a6237443a412d49cb28af2e0cec61c9bf5c34ec54db1240a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/master_data.py":{"size":619,"mtime_ns":1780925759582999052,"hash":"6f6b2c2e1478efce74b8c6e6fb058d914b8b79adfadf2fea2d91cb55d3f9cdce"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/vehicles.py":{"size":4748,"mtime_ns":1780925781827569662,"hash":"8f8b32dfbf4046cfa0b6645d211732596f7027d46244d9c50132425220065483"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/plans.py":{"size":16891,"mtime_ns":1782687687550624191,"hash":"8ee70d9f9a6e169c1340d6f5874db5aafba3dfa36f68354ac5e15a9a3e294ec3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/mappers.py":{"size":6955,"mtime_ns":1782219619253708711,"hash":"b9e97f66a0a248d06c2f960c3f5ac4fb3369cc976c16709227dee0cc1513d221"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/weighing_logic.py":{"size":4110,"mtime_ns":1780804818442134500,"hash":"468ded88a0a4a397a96884580c88c59291c0b6effa897f08f1b3fea7857f9191"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/dashboard.py":{"size":514,"mtime_ns":1780804990870580151,"hash":"f2c1b1014d0d769abf32dab3783de65fe7fe327c956ffbfe44adce94542f8892"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/dashboard.py":{"size":6576,"mtime_ns":1782651340330906738,"hash":"753703fbbe8ddc02d8fbdae78df4abd1448f5ce5878e2f0390111360fdc300b3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/tasks/db_auto_plan.py":{"size":949,"mtime_ns":1780805095845033710,"hash":"9f7513cd2e74f9ddfe5cbee4ae58a40ee7a58aaaff051d590b19a6e1b08bb46a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/plan_helpers.py":{"size":386,"mtime_ns":1780805092108105489,"hash":"5c6ec7612b204e1dcb65c5daf03fa7f8ffa7710cd1ace63be4f7ca00cbf318b8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/auto_generate_plans.py":{"size":4699,"mtime_ns":1780935400833764213,"hash":"d0760cb8155d60e18040bcf6fe41e6964640a3dffd6f4b7bb68678c9f31ab29a"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/run_db_auto_generate_plans.py":{"size":1043,"mtime_ns":1780805102157096922,"hash":"3cd8f15b677f21b2873ff384fc0581da264a53ee4318da3c8262101156e3225b"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/migrate_dibang_data.py":{"size":20215,"mtime_ns":1782011225157870526,"hash":"28a49a423a784e70bec424b702f3d58f69b6f847153c061414efdcdabb660d0e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/inventory_id.py":{"size":2574,"mtime_ns":1780934632326984469,"hash":"c5269cbb273d987c296143b83f1287762ce67d7ddeccfb0a72bc70234bad9f12"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db/product_helpers.py":{"size":2106,"mtime_ns":1780935268573313971,"hash":"cea6b0697eb64081a79d18ab95f0f0477714505a7aef82a41672197b15fc8b14"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_db_inventory_id.py":{"size":586,"mtime_ns":1780934647395760353,"hash":"71a9617d5d0f2c23416686eded204b4c941b47afc3fd6e3facf0c75401e883d9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/models/pl_models.py":{"size":56875,"mtime_ns":1782793455702940883,"hash":"7aad1323fbf1b7b2d9b10ee286abbe07dd83b9f14a013958caf633cae5f50503"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/plan.py":{"size":18566,"mtime_ns":1782793472102045743,"hash":"55e2c1f94d7026eba0605addb9d548296a633c7ca54c98ff3db860df37dfa951"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/transport.py":{"size":14595,"mtime_ns":1782793487671617034,"hash":"7bf91be009b835f1399914ee616dc3a2d0597c11c508c7ea02ac837877ecb8ef"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/__init__.py":{"size":4948,"mtime_ns":1782831660116952101,"hash":"f93af54f86cff3b3978e255d215dae56b6c3143fef2dee10372d75218627a9ac"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/freight.py":{"size":11165,"mtime_ns":1782855915078092753,"hash":"e654383417f6ea6c51506f1af1138c2ba7e048e7cbd419f881148fe4460ef22b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/inventory.py":{"size":7582,"mtime_ns":1781880505308870220,"hash":"c88a917677bcb18c0d2c906d6953a49090d09736c1989ed4c68cab8566183135"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/plan.py":{"size":35328,"mtime_ns":1782793517018069786,"hash":"efd08d525ffeb9fd0658ec5f5d48acbbb59a8580c63beda2e5f8dd81c0c5d6c1"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/transport.py":{"size":32928,"mtime_ns":1782793483046418008,"hash":"158a194986219cdcfa88ea6c7bfd26b2326c1e4443489045ac396daa5ecc1bf0"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/__init__.py":{"size":1006,"mtime_ns":1782696220861286464,"hash":"cc336157a12b45aa7ce7b708f21a34590440f184cea52fa70d1b2d54cc5056fb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/freight.py":{"size":10545,"mtime_ns":1782788621300068361,"hash":"6e153316ea3aa04c64aa8ccfdafc43e7c9bbb975f5d2ead10670a71b01a7a5e4"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/base_data.py":{"size":30218,"mtime_ns":1782831664104134981,"hash":"885b8fdc78c77b2bf6bae5aaf34438d4a7f12fb700947cf09fc3aafa26c2ae1a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/inventory.py":{"size":12309,"mtime_ns":1782650609142639025,"hash":"9c6a5dc8bbad57fea5e93ba3347cbad1acef1439ed13e316dd723f57ce035149"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/check_pl_json_aliases.py":{"size":2918,"mtime_ns":1781880510604174541,"hash":"b04c5636779ecbcb3082eabdbf42db846cc31f7376129845820c6a4c1e829104"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/base_data.py":{"size":19186,"mtime_ns":1782831660040629717,"hash":"9fd2dc4fac0dadf0f19caf0ae4e469f2f1939cd38179d01036b35dffc9c0ee7b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_personnel_service.py":{"size":6362,"mtime_ns":1781880523198345970,"hash":"189cd50c299ef5bcd983c813612c997cce4b65e5fe95fbb5dec079902bd1e79e"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_cert_service.py":{"size":6466,"mtime_ns":1782691225897027238,"hash":"85feb88966fb6a222428326ffd1dcf10781a2736b16917bbbd9dfaab358ed6ea"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_plan_service.py":{"size":30120,"mtime_ns":1782856155708156232,"hash":"a5f249edb8e26331ef8a3b218505ff63ae32908d45c8fcac568fae1aafeae503"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_transport.py":{"size":7660,"mtime_ns":1782790898570380855,"hash":"366fd72fdf68e3a1945ae4a7f00d967fe5d2497896f3368517f1767a55b76751"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_dibang_bridge_service.py":{"size":12594,"mtime_ns":1782227851746783133,"hash":"f8629d807f7e4fcf21530e1660125d93a2b422110a780896ff97d7aa99382a41"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/db/public_inventory.py":{"size":1417,"mtime_ns":1782219580518873800,"hash":"5ea0cd3fb0da8a327b247bf7b838e336eec6cc47558541e20e1c2b1ffa1bcab7"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/db/public_inventory.py":{"size":6968,"mtime_ns":1782790898570930774,"hash":"79aa205d2e5e89ed45dd7b95068b93e3f6db82ee9258b0331b21d6c8ab551582"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_inventory_link_read.py":{"size":782,"mtime_ns":1782225276143253698,"hash":"6471dfc9a1fbe66223f79490a5827b2422e5ca6932305ccde6aef4b641676a6b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/public_site.py":{"size":5866,"mtime_ns":1782790898570081187,"hash":"73bb5f9fd0f9504e38c482b047e956b31ecc1531f4bdd1132e5b7fc462d34d66"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_site_link_read.py":{"size":2362,"mtime_ns":1782225460524562610,"hash":"3b9e1b93d3c4375b6b3adb4476ceb0df356654089d994aef4fea7e4f29266c06"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_site_service.py":{"size":3701,"mtime_ns":1782225248175867714,"hash":"07585f13aaad965c106e88ac26f5f8c58852c0c2bb0bdb91820185133d799219"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_freight_settlement_service.py":{"size":46834,"mtime_ns":1782857487526591585,"hash":"55354fbca3b24b8cc0791fc0db988ae5620d97189a041f39958c72d04cad43fe"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_data_scope.py":{"size":4660,"mtime_ns":1782649048011371782,"hash":"9545dc65fac7e13bf07ece2ec828ec5957bb115e23d0ac8c996f9c70362a4ecd"},"/Users/zlwu/work/00code/shanxia2.0/backend/DEPLOY.md":{"size":2574,"mtime_ns":1782639356701497576,"hash":"6989c30ab5c99ebf488137e31e5561b4a00d36060716dfad3fc247b673538818"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/crud/crm/data_scope_helpers.py":{"size":3358,"mtime_ns":1782650085670691361,"hash":"b0aab03bc7b3afb2faf39410e9881b65e6a2eeecba592d1655b5b9359fb4dbdd"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_quote_contract.py":{"size":12491,"mtime_ns":1782650163950860693,"hash":"eb6b944df35fda5edb6675b69b00f5a83a75fd78785251d1e81e1788ed439cfe"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api.py":{"size":14409,"mtime_ns":1782650231443625388,"hash":"fb4cf4178a4b7c5530999f0c950ed38310dfe81b3168c10117849d6f512be01d"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/patch_pr3_api_calls.py":{"size":3345,"mtime_ns":1782650279067732462,"hash":"57732d0beb80ee17b533c78ce0250967fa83c68354ea9d1972275ba1fbc39007"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_data_scope.py":{"size":801,"mtime_ns":1782650506729785291,"hash":"0f0275c56a43603e69a030dd1d284cfc7982a7636423cfff6d0e692eb4631cb1"},"/Users/zlwu/work/00code/shanxia2.0/backend/scripts/apply_pl_data_scope.py":{"size":10945,"mtime_ns":1782650517176615737,"hash":"928fe2112c9fd8bab4da7f4fc67d6d247c78187ca3b1a4146cc2fd3d9e04697f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/bx_data_scope.py":{"size":2394,"mtime_ns":1782650938092205819,"hash":"1e8e1dbdcf4bc68c2e30b99015e930bb9522bd1f633e95604ec6a62bdb2b43f3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/db_data_scope.py":{"size":796,"mtime_ns":1782651142571517234,"hash":"ad4e206ae53e25247ebb004e0ef586077a6e7df0eac7b14973c26b186cffb2eb"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/delete_guard.py":{"size":3572,"mtime_ns":1782687610196676295,"hash":"223d91c51a1677b6a4b7802d5571af14d5cda8bc45e4e757b1f2150990a69bce"},"/Users/zlwu/work/00code/shanxia2.0/backend/tests/test_delete_guard.py":{"size":1565,"mtime_ns":1782687611517772849,"hash":"5e2a45f63b7296e3a10dfbd4b4716e54370e1439248881d6591cba5c9f6581d6"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_carrier_service.py":{"size":3677,"mtime_ns":1782690588279931260,"hash":"fa310dabccb44c964223254c1195ba4b1a9f61c77efa626eca10e32a9da3d29f"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_recharge.py":{"size":6299,"mtime_ns":1782694169098881801,"hash":"4d5ab880c0c3ca91b485e1ba53725005b9f89fe205780d58a738c861dbb7e6f8"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_recharge.py":{"size":8824,"mtime_ns":1782693867411719704,"hash":"f084b6fb3e80de0455ee9cfcc857ae5814b79497786367380f3a375b16c4bf85"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_recharge_service.py":{"size":22549,"mtime_ns":1782694172247240480,"hash":"4b40ddf0c8b1abcaa002bdb29411120c54c500067e2c0c9bad83638c06f12c56"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_maintenance.py":{"size":6563,"mtime_ns":1782695447503836332,"hash":"c34b79f5bcd004c0f6353922492883e4b08e5a6bc229f0265c9af850d235848b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_maintenance.py":{"size":7793,"mtime_ns":1782695447583143336,"hash":"79033735d527926ac082200de0b89a122c53db3cbdf5fb33e3cc69f74dd017f5"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_maintenance_service.py":{"size":23216,"mtime_ns":1782695447519129687,"hash":"0c1e630117fede22616c445ea1348e75546f20932900a6a6551d840340b82ce9"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/vehicle_urea.py":{"size":5609,"mtime_ns":1782696196169930337,"hash":"71b7de2f90b3c7c732b59683e5cd4d858288121414a1ff2679c039299f5fb024"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/api/pl/vehicle_urea.py":{"size":6696,"mtime_ns":1782696220189638136,"hash":"750ecae5cdcc857031e618b87ffa9b28607bd47e72ecf6dc7ebbe51003682df3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_vehicle_urea_service.py":{"size":19556,"mtime_ns":1782696213546483763,"hash":"03d389e791e5fac9a5339d1259d342952fced97712c3657e8f791426de32743b"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_decorator.py":{"size":5312,"mtime_ns":1782701254052728785,"hash":"e476146985da29ad8cb77064d10314470546a8a52f6026a75fdbadd3fee34288"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_infer.py":{"size":1767,"mtime_ns":1782699326717654441,"hash":"4346307abeb03020a7069f560556b9954cf50203efb6ac65b0a4b9644b6a9b2d"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/oper_log_context.py":{"size":868,"mtime_ns":1782699327268762002,"hash":"064c356f3f0fbabc454311445f02d375b965c2c055ddc51386d4dad50ac3337a"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/core/redis_client.py":{"size":1691,"mtime_ns":1782790834895168051,"hash":"e5d84d7433ce745da7a37fb46dff5d5eb6ae027ef0efbf406da0c9c7fb6089ad"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/schemas/pl/resource_snapshot.py":{"size":3823,"mtime_ns":1782793446819247296,"hash":"2d65c990d058d22010f8d4449652eb752c297a046b5d7b3ff6755c3e1cad0cf3"},"/Users/zlwu/work/00code/shanxia2.0/backend/app/services/pl_transport_resource_snapshot_service.py":{"size":4861,"mtime_ns":1782793450356380638,"hash":"6f94dcb582fe725738a54469e461aa0124b9754b2141cb78d3859ff1a2f25ca9"}}
\ No newline at end of file
diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html
deleted file mode 100644
index 9e168fad4..000000000
--- a/backend/graphify-out/graph.html
+++ /dev/null
@@ -1,307 +0,0 @@
-
-
-
-
-graphify - /Users/zlwu/work/00code/shanxia2.0/backend/graphify-out/graph.html
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/backend/graphify-out/graph.json b/backend/graphify-out/graph.json
index 0d3ef6f34..ee0deb679 100644
--- a/backend/graphify-out/graph.json
+++ b/backend/graphify-out/graph.json
@@ -683,7 +683,7 @@
"source_file": "app/tasks/db_auto_plan.py",
"source_location": "L1",
"id": "app_tasks_db_auto_plan_py",
- "community": 78,
+ "community": 68,
"norm_label": "db_auto_plan.py"
},
{
@@ -692,7 +692,7 @@
"source_file": "app/tasks/db_auto_plan.py",
"source_location": "L10",
"id": "tasks_db_auto_plan_auto_generate_monthly_plans_job",
- "community": 78,
+ "community": 68,
"norm_label": "auto_generate_monthly_plans_job()"
},
{
@@ -701,7 +701,7 @@
"source_file": "app/tasks/db_auto_plan.py",
"source_location": "L11",
"id": "tasks_db_auto_plan_rationale_11",
- "community": 78,
+ "community": 68,
"norm_label": "\u6bcf\u6708 1 \u65e5\u51cc\u6668\u6267\u884c:\u6309\u4e0a\u6708\u8ba1\u5212\u6a21\u677f\u751f\u6210\u672c\u6708\u8ba1\u5212\u3002"
},
{
@@ -710,7 +710,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L1",
"id": "app_tasks_customer_pool_py",
- "community": 33,
+ "community": 68,
"norm_label": "customer_pool.py"
},
{
@@ -719,7 +719,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L17",
"id": "tasks_customer_pool_check_customer_protect_time",
- "community": 33,
+ "community": 68,
"norm_label": "check_customer_protect_time()"
},
{
@@ -728,7 +728,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L66",
"id": "tasks_customer_pool_remind_customer_recycle",
- "community": 33,
+ "community": 68,
"norm_label": "remind_customer_recycle()"
},
{
@@ -737,7 +737,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L112",
"id": "tasks_customer_pool_pool_recovery_job",
- "community": 33,
+ "community": 68,
"norm_label": "pool_recovery_job()"
},
{
@@ -746,7 +746,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L152",
"id": "tasks_customer_pool_warn_customer_recycle",
- "community": 33,
+ "community": 68,
"norm_label": "warn_customer_recycle()"
},
{
@@ -755,7 +755,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L225",
"id": "tasks_customer_pool_recycle_to_pool",
- "community": 6,
+ "community": 33,
"norm_label": "_recycle_to_pool()"
},
{
@@ -764,7 +764,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L225",
"id": "app_tasks_customer_pool_py_session",
- "community": 6,
+ "community": 33,
"norm_label": "session"
},
{
@@ -773,7 +773,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L225",
"id": "app_tasks_customer_pool_py_crmcustomer",
- "community": 6,
+ "community": 33,
"norm_label": "crmcustomer"
},
{
@@ -782,7 +782,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L225",
"id": "app_tasks_customer_pool_py_str",
- "community": 6,
+ "community": 33,
"norm_label": "str"
},
{
@@ -791,7 +791,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L18",
"id": "tasks_customer_pool_rationale_18",
- "community": 33,
+ "community": 68,
"norm_label": "\u6bcf\u5929\u51cc\u66681\u70b9:\u68c0\u67e5\u4fdd\u62a4\u671f\u5230\u671f\u5ba2\u6237,\u8ddf\u8fdb\u6b21\u6570\u4e0d\u8db3\u5219\u9000\u56de\u516c\u6d77"
},
{
@@ -800,7 +800,7 @@
"source_file": "app/tasks/customer_pool.py",
"source_location": "L67",
"id": "tasks_customer_pool_rationale_67",
- "community": 33,
+ "community": 68,
"norm_label": "\u6bcf\u5929\u65e9\u4e0a9\u70b9:\u4fdd\u62a4\u671f\u5230\u671f\u63d0\u9192(3\u5929\u5185\u5230\u671f\u4e14\u8ddf\u8fdb\u4e0d\u8db3)"
},
{
@@ -809,7 +809,7 @@
"source_file": "app/tasks/__init__.py",
"source_location": "L1",
"id": "app_tasks_init_py",
- "community": 33,
+ "community": 68,
"norm_label": "__init__.py"
},
{
@@ -836,7 +836,7 @@
"source_file": "app/core/db_auth.py",
"source_location": "L1",
"id": "app_core_db_auth_py",
- "community": 21,
+ "community": 111,
"norm_label": "db_auth.py"
},
{
@@ -917,7 +917,7 @@
"source_file": "app/core/db_auth.py",
"source_location": "L1",
"id": "core_db_auth_rationale_1",
- "community": 21,
+ "community": 111,
"norm_label": "\u5730\u78c5\u6a21\u5757\u8ba4\u8bc1\u9002\u914d:\u95e8\u6237 jwt \u7528\u6237 \u2192 db \u4e1a\u52a1\u4e0a\u4e0b\u6587\u3002"
},
{
@@ -953,7 +953,7 @@
"source_file": "app/core/tenant_context.py",
"source_location": "L1",
"id": "app_core_tenant_context_py",
- "community": 22,
+ "community": 9,
"norm_label": "tenant_context.py"
},
{
@@ -980,7 +980,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L1",
"id": "app_core_oper_log_decorator_py",
- "community": 90,
+ "community": 144,
"norm_label": "oper_log_decorator.py"
},
{
@@ -989,7 +989,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L23",
"id": "core_oper_log_decorator_to_dict",
- "community": 90,
+ "community": 144,
"norm_label": "_to_dict()"
},
{
@@ -998,7 +998,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L23",
"id": "app_core_oper_log_decorator_py_any",
- "community": 90,
+ "community": 144,
"norm_label": "any"
},
{
@@ -1007,7 +1007,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L36",
"id": "core_oper_log_decorator_pick_field",
- "community": 90,
+ "community": 144,
"norm_label": "_pick_field()"
},
{
@@ -1016,7 +1016,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L36",
"id": "app_core_oper_log_decorator_py_str",
- "community": 90,
+ "community": 144,
"norm_label": "str"
},
{
@@ -1025,7 +1025,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L49",
"id": "core_oper_log_decorator_resolve_business_id",
- "community": 90,
+ "community": 144,
"norm_label": "_resolve_business_id()"
},
{
@@ -1034,7 +1034,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L73",
"id": "core_oper_log_decorator_format_summary",
- "community": 90,
+ "community": 144,
"norm_label": "_format_summary()"
},
{
@@ -1043,7 +1043,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L73",
"id": "app_core_oper_log_decorator_py_int",
- "community": 90,
+ "community": 144,
"norm_label": "int"
},
{
@@ -1052,7 +1052,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L95",
"id": "core_oper_log_decorator_preserve_fastapi_signature",
- "community": 90,
+ "community": 144,
"norm_label": "_preserve_fastapi_signature()"
},
{
@@ -1061,7 +1061,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L118",
"id": "core_oper_log_decorator_oper_log",
- "community": 90,
+ "community": 144,
"norm_label": "oper_log()"
},
{
@@ -1070,7 +1070,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L118",
"id": "f",
- "community": 90,
+ "community": 144,
"norm_label": "f"
},
{
@@ -1079,7 +1079,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L1",
"id": "core_oper_log_decorator_rationale_1",
- "community": 90,
+ "community": 144,
"norm_label": "\u8def\u7531\u64cd\u4f5c\u65e5\u5fd7\u88c5\u9970\u5668:\u5199\u5165 contextvar \u4f9b\u4e2d\u95f4\u4ef6\u843d\u5e93"
},
{
@@ -1088,7 +1088,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L96",
"id": "core_oper_log_decorator_rationale_96",
- "community": 90,
+ "community": 144,
"norm_label": "fastapi \u901a\u8fc7 inspect.signature + wrapper.__globals__ \u89e3\u6790\u7c7b\u578b;\u9700\u5728\u539f\u51fd\u6570\u547d\u540d\u7a7a\u95f4\u4e0b\u89e3\u6790\u540e\u5199\u56de\u3002"
},
{
@@ -1097,7 +1097,7 @@
"source_file": "app/core/oper_log_decorator.py",
"source_location": "L125",
"id": "core_oper_log_decorator_rationale_125",
- "community": 90,
+ "community": 144,
"norm_label": "\u5728 handler \u6267\u884c\u524d\u8bbe\u7f6e\u64cd\u4f5c\u65e5\u5fd7\u5143\u6570\u636e\u3002"
},
{
@@ -1223,7 +1223,7 @@
"source_file": "app/core/auth.py",
"source_location": "L95",
"id": "core_auth_create_access_token",
- "community": 132,
+ "community": 130,
"norm_label": "create_access_token()"
},
{
@@ -1241,7 +1241,7 @@
"source_file": "app/core/auth.py",
"source_location": "L119",
"id": "core_auth_create_refresh_token",
- "community": 132,
+ "community": 130,
"norm_label": "create_refresh_token()"
},
{
@@ -1250,7 +1250,7 @@
"source_file": "app/core/auth.py",
"source_location": "L135",
"id": "core_auth_decode_token",
- "community": 132,
+ "community": 104,
"norm_label": "decode_token()"
},
{
@@ -1358,7 +1358,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L1",
"id": "app_core_api_crypto_py",
- "community": 122,
+ "community": 13,
"norm_label": "api_crypto.py"
},
{
@@ -1367,7 +1367,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L14",
"id": "core_api_crypto_apicryptoerror",
- "community": 122,
+ "community": 13,
"norm_label": "apicryptoerror"
},
{
@@ -1385,7 +1385,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L18",
"id": "core_api_crypto_derive_key",
- "community": 122,
+ "community": 13,
"norm_label": "derive_key()"
},
{
@@ -1394,7 +1394,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L18",
"id": "app_core_api_crypto_py_str",
- "community": 122,
+ "community": 13,
"norm_label": "str"
},
{
@@ -1403,7 +1403,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L18",
"id": "app_core_api_crypto_py_int",
- "community": 122,
+ "community": 13,
"norm_label": "int"
},
{
@@ -1412,7 +1412,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L18",
"id": "app_core_api_crypto_py_bytes",
- "community": 122,
+ "community": 13,
"norm_label": "bytes"
},
{
@@ -1421,7 +1421,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L23",
"id": "core_api_crypto_b64url_encode",
- "community": 122,
+ "community": 13,
"norm_label": "_b64url_encode()"
},
{
@@ -1430,7 +1430,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L27",
"id": "core_api_crypto_b64url_decode",
- "community": 122,
+ "community": 13,
"norm_label": "_b64url_decode()"
},
{
@@ -1439,7 +1439,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L32",
"id": "core_api_crypto_encrypt_json",
- "community": 122,
+ "community": 13,
"norm_label": "encrypt_json()"
},
{
@@ -1448,7 +1448,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L32",
"id": "app_core_api_crypto_py_any",
- "community": 122,
+ "community": 13,
"norm_label": "any"
},
{
@@ -1457,7 +1457,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L40",
"id": "core_api_crypto_decrypt_json",
- "community": 122,
+ "community": 13,
"norm_label": "decrypt_json()"
},
{
@@ -1466,7 +1466,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L59",
"id": "core_api_crypto_gen_nonce_hex",
- "community": 122,
+ "community": 13,
"norm_label": "gen_nonce_hex()"
},
{
@@ -1475,7 +1475,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L63",
"id": "core_api_crypto_is_ts_in_window",
- "community": 122,
+ "community": 13,
"norm_label": "is_ts_in_window()"
},
{
@@ -1484,7 +1484,7 @@
"source_file": "app/core/api_crypto.py",
"source_location": "L63",
"id": "app_core_api_crypto_py_bool",
- "community": 122,
+ "community": 13,
"norm_label": "bool"
},
{
@@ -1493,7 +1493,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L1",
"id": "app_core_login_crypto_py",
- "community": 109,
+ "community": 64,
"norm_label": "login_crypto.py"
},
{
@@ -1502,7 +1502,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L22",
"id": "core_login_crypto_ensure_initialized",
- "community": 109,
+ "community": 64,
"norm_label": "ensure_initialized()"
},
{
@@ -1511,7 +1511,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L56",
"id": "core_login_crypto_get_public_pem",
- "community": 109,
+ "community": 64,
"norm_label": "get_public_pem()"
},
{
@@ -1520,7 +1520,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L56",
"id": "app_core_login_crypto_py_str",
- "community": 109,
+ "community": 64,
"norm_label": "str"
},
{
@@ -1529,7 +1529,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L62",
"id": "core_login_crypto_decrypt_login_payload",
- "community": 109,
+ "community": 64,
"norm_label": "decrypt_login_payload()"
},
{
@@ -1538,7 +1538,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L62",
"id": "app_core_login_crypto_py_any",
- "community": 109,
+ "community": 64,
"norm_label": "any"
},
{
@@ -1547,7 +1547,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L71",
"id": "core_login_crypto_validate_ts",
- "community": 109,
+ "community": 64,
"norm_label": "_validate_ts()"
},
{
@@ -1556,7 +1556,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L71",
"id": "app_core_login_crypto_py_bool",
- "community": 109,
+ "community": 64,
"norm_label": "bool"
},
{
@@ -1565,7 +1565,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L83",
"id": "core_login_crypto_extract_login_credentials",
- "community": 109,
+ "community": 64,
"norm_label": "extract_login_credentials()"
},
{
@@ -1574,7 +1574,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L1",
"id": "core_login_crypto_rationale_1",
- "community": 109,
+ "community": 64,
"norm_label": "\u767b\u5f55\u51ed\u636e rsa \u89e3\u5bc6(\u4e0e\u524d\u7aef jsencrypt pkcs#1 v1.5 \u517c\u5bb9)\u3002"
},
{
@@ -1583,7 +1583,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L63",
"id": "core_login_crypto_rationale_63",
- "community": 109,
+ "community": 64,
"norm_label": "base64 \u5bc6\u6587 -> json \u5bf9\u8c61(\u987b\u542b username\u3001password\u3001ts \u6beb\u79d2\u65f6\u95f4\u6233)\u3002"
},
{
@@ -1592,7 +1592,7 @@
"source_file": "app/core/login_crypto.py",
"source_location": "L84",
"id": "core_login_crypto_rationale_84",
- "community": 109,
+ "community": 64,
"norm_label": "\u4ece\u8bf7\u6c42\u4f53\u89e3\u6790\u7528\u6237\u540d\u3001\u5bc6\u7801\u3002 \u8fd4\u56de (username, password, error_message);error_message \u975e\u7a7a\u65f6\u8868\u793a\u5931\u8d25\u3002"
},
{
@@ -2132,7 +2132,7 @@
"source_file": "app/core/database.py",
"source_location": "L1",
"id": "app_core_database_py",
- "community": 77,
+ "community": 111,
"norm_label": "database.py"
},
{
@@ -2141,7 +2141,7 @@
"source_file": "app/core/database.py",
"source_location": "L28",
"id": "core_database_get_db",
- "community": 77,
+ "community": 111,
"norm_label": "get_db()"
},
{
@@ -2150,7 +2150,7 @@
"source_file": "app/core/database.py",
"source_location": "L38",
"id": "core_database_auto_fill_create_dept_id",
- "community": 77,
+ "community": 111,
"norm_label": "_auto_fill_create_dept_id()"
},
{
@@ -2159,7 +2159,7 @@
"source_file": "app/core/database.py",
"source_location": "L39",
"id": "core_database_rationale_39",
- "community": 77,
+ "community": 111,
"norm_label": "orm before_insert \u94a9\u5b50:\u5f53 create_dept_id \u4e3a\u7a7a\u65f6,\u81ea\u52a8\u4ece\u8bf7\u6c42\u4e0a\u4e0b\u6587\u586b\u5145\u5f53\u524d\u7528\u6237\u90e8\u95e8 id"
},
{
@@ -2168,7 +2168,7 @@
"source_file": "app/core/security.py",
"source_location": "L1",
"id": "app_core_security_py",
- "community": 125,
+ "community": 132,
"norm_label": "security.py"
},
{
@@ -2177,7 +2177,7 @@
"source_file": "app/core/security.py",
"source_location": "L4",
"id": "core_security_verify_password",
- "community": 125,
+ "community": 132,
"norm_label": "verify_password()"
},
{
@@ -2186,7 +2186,7 @@
"source_file": "app/core/security.py",
"source_location": "L4",
"id": "app_core_security_py_str",
- "community": 125,
+ "community": 132,
"norm_label": "str"
},
{
@@ -2195,7 +2195,7 @@
"source_file": "app/core/security.py",
"source_location": "L4",
"id": "app_core_security_py_bool",
- "community": 125,
+ "community": 132,
"norm_label": "bool"
},
{
@@ -2204,7 +2204,7 @@
"source_file": "app/core/security.py",
"source_location": "L20",
"id": "core_security_get_password_hash",
- "community": 125,
+ "community": 132,
"norm_label": "get_password_hash()"
},
{
@@ -2213,7 +2213,7 @@
"source_file": "app/core/security.py",
"source_location": "L5",
"id": "core_security_rationale_5",
- "community": 125,
+ "community": 132,
"norm_label": "\u9a8c\u8bc1\u5bc6\u7801(\u54c8\u5e0c\u975e bcrypt \u6216\u635f\u574f\u65f6\u8fd4\u56de false,\u907f\u514d\u629b\u9519)"
},
{
@@ -2276,7 +2276,7 @@
"source_file": "app/core/oper_log_infer.py",
"source_location": "L1",
"id": "app_core_oper_log_infer_py",
- "community": 90,
+ "community": 36,
"norm_label": "oper_log_infer.py"
},
{
@@ -2285,7 +2285,7 @@
"source_file": "app/core/oper_log_infer.py",
"source_location": "L42",
"id": "core_oper_log_infer_title_from_path",
- "community": 90,
+ "community": 36,
"norm_label": "title_from_path()"
},
{
@@ -2294,7 +2294,7 @@
"source_file": "app/core/oper_log_infer.py",
"source_location": "L42",
"id": "app_core_oper_log_infer_py_str",
- "community": 90,
+ "community": 36,
"norm_label": "str"
},
{
@@ -2303,7 +2303,7 @@
"source_file": "app/core/oper_log_infer.py",
"source_location": "L50",
"id": "core_oper_log_infer_business_type_from_path",
- "community": 90,
+ "community": 36,
"norm_label": "business_type_from_path()"
},
{
@@ -2312,7 +2312,7 @@
"source_file": "app/core/oper_log_infer.py",
"source_location": "L50",
"id": "app_core_oper_log_infer_py_int",
- "community": 90,
+ "community": 36,
"norm_label": "int"
},
{
@@ -2321,7 +2321,7 @@
"source_file": "app/core/response.py",
"source_location": "L1",
"id": "app_core_response_py",
- "community": 80,
+ "community": 7,
"norm_label": "response.py"
},
{
@@ -2330,7 +2330,7 @@
"source_file": "app/core/response.py",
"source_location": "L8",
"id": "core_response_responsemodel",
- "community": 80,
+ "community": 7,
"norm_label": "responsemodel"
},
{
@@ -2339,7 +2339,7 @@
"source_file": "app/core/response.py",
"source_location": "L15",
"id": "core_response_config",
- "community": 80,
+ "community": 7,
"norm_label": "config"
},
{
@@ -2348,7 +2348,7 @@
"source_file": "app/core/response.py",
"source_location": "L19",
"id": "core_response_pageresult",
- "community": 80,
+ "community": 7,
"norm_label": "pageresult"
},
{
@@ -2384,7 +2384,7 @@
"source_file": "app/core/response.py",
"source_location": "L39",
"id": "core_response_format_api_error_message",
- "community": 5,
+ "community": 13,
"norm_label": "format_api_error_message()"
},
{
@@ -2420,7 +2420,7 @@
"source_file": "app/core/response.py",
"source_location": "L40",
"id": "core_response_rationale_40",
- "community": 5,
+ "community": 13,
"norm_label": "\u5c06 http/sqlalchemy \u7b49\u5f02\u5e38\u8f6c\u4e3a\u53ef\u5c55\u793a\u7684\u9519\u8bef\u6587\u6848(\u907f\u514d str([]) \u7a7a\u5217\u8868)\u3002"
},
{
@@ -2429,7 +2429,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L1",
"id": "app_core_oper_log_context_py",
- "community": 90,
+ "community": 144,
"norm_label": "oper_log_context.py"
},
{
@@ -2438,7 +2438,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L10",
"id": "core_oper_log_context_operlogmeta",
- "community": 90,
+ "community": 144,
"norm_label": "operlogmeta"
},
{
@@ -2447,7 +2447,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L20",
"id": "core_oper_log_context_set_oper_log_meta",
- "community": 90,
+ "community": 144,
"norm_label": "set_oper_log_meta()"
},
{
@@ -2456,7 +2456,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L24",
"id": "core_oper_log_context_get_oper_log_meta",
- "community": 90,
+ "community": 144,
"norm_label": "get_oper_log_meta()"
},
{
@@ -2474,7 +2474,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L32",
"id": "core_oper_log_context_snapshot_oper_log_meta",
- "community": 90,
+ "community": 144,
"norm_label": "snapshot_oper_log_meta()"
},
{
@@ -2483,7 +2483,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L1",
"id": "core_oper_log_context_rationale_1",
- "community": 90,
+ "community": 144,
"norm_label": "\u8bf7\u6c42\u7ea7\u64cd\u4f5c\u65e5\u5fd7\u5143\u6570\u636e(contextvar)"
},
{
@@ -2492,7 +2492,7 @@
"source_file": "app/core/oper_log_context.py",
"source_location": "L33",
"id": "core_oper_log_context_rationale_33",
- "community": 90,
+ "community": 144,
"norm_label": "\u4f9b\u5f02\u6b65\u843d\u5e93\u7ebf\u7a0b\u4f7f\u7528,\u907f\u514d contextvar \u8de8\u7ebf\u7a0b\u4e22\u5931\u3002"
},
{
@@ -2501,7 +2501,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L1",
"id": "app_core_menu_guard_py",
- "community": 112,
+ "community": 111,
"norm_label": "menu_guard.py"
},
{
@@ -2510,7 +2510,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L15",
"id": "core_menu_guard_require_admin_or_super_admin",
- "community": 16,
+ "community": 47,
"norm_label": "require_admin_or_super_admin()"
},
{
@@ -2519,7 +2519,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L23",
"id": "core_menu_guard_get_user_menu_codes",
- "community": 112,
+ "community": 111,
"norm_label": "get_user_menu_codes()"
},
{
@@ -2528,7 +2528,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L23",
"id": "app_core_menu_guard_py_session",
- "community": 112,
+ "community": 111,
"norm_label": "session"
},
{
@@ -2537,7 +2537,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L23",
"id": "app_core_menu_guard_py_str",
- "community": 112,
+ "community": 111,
"norm_label": "str"
},
{
@@ -2546,7 +2546,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L28",
"id": "core_menu_guard_require_menu_code",
- "community": 112,
+ "community": 111,
"norm_label": "require_menu_code()"
},
{
@@ -2555,7 +2555,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L1",
"id": "core_menu_guard_rationale_1",
- "community": 112,
+ "community": 111,
"norm_label": "\u83dc\u5355 code \u6743\u9650\u5b88\u536b(v0.3:\u901a\u8fc7 sys_user_role \u2192 sys_role_menu \u2192 sys_menu.perms)"
},
{
@@ -2564,7 +2564,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L16",
"id": "core_menu_guard_rationale_16",
- "community": 16,
+ "community": 47,
"norm_label": "\u8fd0\u8425\u7aef\u89d2\u8272\u5b88\u536b:admin / super_admin \u53ef\u8bbf\u95ee\u3002"
},
{
@@ -2573,7 +2573,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L24",
"id": "core_menu_guard_rationale_24",
- "community": 112,
+ "community": 111,
"norm_label": "\u8bfb\u53d6\u7528\u6237\u6388\u6743\u7684\u83dc\u5355\u6743\u9650\u6807\u8bc6\u96c6\u5408(\u4e0e\u524d\u7aef meta.menucode / perms \u5bf9\u9f50)\u3002"
},
{
@@ -2582,7 +2582,7 @@
"source_file": "app/core/menu_guard.py",
"source_location": "L29",
"id": "core_menu_guard_rationale_29",
- "community": 112,
+ "community": 111,
"norm_label": "\u63a5\u53e3\u83dc\u5355\u6743\u9650\u5b88\u536b\u3002super_admin \u76f4\u63a5\u653e\u884c\u3002"
},
{
@@ -2825,7 +2825,7 @@
"source_file": "app/core/utils.py",
"source_location": "L9",
"id": "core_utils_generate_uuid",
- "community": 11,
+ "community": 21,
"norm_label": "generate_uuid()"
},
{
@@ -2834,7 +2834,7 @@
"source_file": "app/core/utils.py",
"source_location": "L9",
"id": "app_core_utils_py_str",
- "community": 39,
+ "community": 34,
"norm_label": "str"
},
{
@@ -2852,7 +2852,7 @@
"source_file": "app/core/utils.py",
"source_location": "L20",
"id": "core_utils_generate_random_password",
- "community": 39,
+ "community": 34,
"norm_label": "generate_random_password()"
},
{
@@ -2861,7 +2861,7 @@
"source_file": "app/core/utils.py",
"source_location": "L20",
"id": "app_core_utils_py_int",
- "community": 39,
+ "community": 34,
"norm_label": "int"
},
{
@@ -2906,7 +2906,7 @@
"source_file": "app/core/utils.py",
"source_location": "L48",
"id": "core_utils_get_file_size_display",
- "community": 39,
+ "community": 34,
"norm_label": "get_file_size_display()"
},
{
@@ -3026,56 +3026,65 @@
"community": 13,
"norm_label": "int"
},
+ {
+ "label": ".presigned_preview_url()",
+ "file_type": "code",
+ "source_file": "app/core/storage.py",
+ "source_location": "L86",
+ "id": "core_storage_basestorage_presigned_preview_url",
+ "community": 13,
+ "norm_label": ".presigned_preview_url()"
+ },
{
"label": "LocalStorage",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L87",
+ "source_location": "L91",
"id": "core_storage_localstorage",
- "community": 89,
+ "community": 13,
"norm_label": "localstorage"
},
{
"label": ".__init__()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L90",
+ "source_location": "L94",
"id": "core_storage_localstorage_init",
- "community": 89,
+ "community": 13,
"norm_label": ".__init__()"
},
{
"label": "._ensure_dir()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L94",
+ "source_location": "L98",
"id": "core_storage_localstorage_ensure_dir",
- "community": 151,
+ "community": 13,
"norm_label": "._ensure_dir()"
},
{
"label": "Path",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L94",
+ "source_location": "L98",
"id": "app_core_storage_py_path",
- "community": 151,
+ "community": 13,
"norm_label": "path"
},
{
"label": "._generate_filename()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L100",
+ "source_location": "L104",
"id": "core_storage_localstorage_generate_filename",
- "community": 89,
+ "community": 13,
"norm_label": "._generate_filename()"
},
{
"label": ".upload_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L106",
+ "source_location": "L110",
"id": "core_storage_localstorage_upload_file",
"community": 13,
"norm_label": ".upload_file()"
@@ -3084,7 +3093,7 @@
"label": ".upload_base64()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L121",
+ "source_location": "L125",
"id": "core_storage_localstorage_upload_base64",
"community": 13,
"norm_label": ".upload_base64()"
@@ -3093,25 +3102,25 @@
"label": ".delete_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L130",
+ "source_location": "L134",
"id": "core_storage_localstorage_delete_file",
- "community": 151,
+ "community": 13,
"norm_label": ".delete_file()"
},
{
"label": ".get_url()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L147",
+ "source_location": "L151",
"id": "core_storage_localstorage_get_url",
- "community": 89,
+ "community": 13,
"norm_label": ".get_url()"
},
{
"label": "QiniuStorage",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L152",
+ "source_location": "L156",
"id": "core_storage_qiniustorage",
"community": 13,
"norm_label": "qiniustorage"
@@ -3120,7 +3129,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L155",
+ "source_location": "L159",
"id": "core_storage_qiniustorage_init",
"community": 13,
"norm_label": ".__init__()"
@@ -3129,7 +3138,7 @@
"label": "._generate_filename()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L164",
+ "source_location": "L168",
"id": "core_storage_qiniustorage_generate_filename",
"community": 13,
"norm_label": "._generate_filename()"
@@ -3138,7 +3147,7 @@
"label": ".upload_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L170",
+ "source_location": "L174",
"id": "core_storage_qiniustorage_upload_file",
"community": 13,
"norm_label": ".upload_file()"
@@ -3147,7 +3156,7 @@
"label": ".upload_base64()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L185",
+ "source_location": "L189",
"id": "core_storage_qiniustorage_upload_base64",
"community": 13,
"norm_label": ".upload_base64()"
@@ -3156,7 +3165,7 @@
"label": ".delete_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L193",
+ "source_location": "L197",
"id": "core_storage_qiniustorage_delete_file",
"community": 13,
"norm_label": ".delete_file()"
@@ -3165,7 +3174,7 @@
"label": ".get_url()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L204",
+ "source_location": "L208",
"id": "core_storage_qiniustorage_get_url",
"community": 13,
"norm_label": ".get_url()"
@@ -3174,7 +3183,7 @@
"label": "OSSStorage",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L209",
+ "source_location": "L213",
"id": "core_storage_ossstorage",
"community": 13,
"norm_label": "ossstorage"
@@ -3183,7 +3192,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L212",
+ "source_location": "L216",
"id": "core_storage_ossstorage_init",
"community": 13,
"norm_label": ".__init__()"
@@ -3192,7 +3201,7 @@
"label": "._generate_filename()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L222",
+ "source_location": "L226",
"id": "core_storage_ossstorage_generate_filename",
"community": 13,
"norm_label": "._generate_filename()"
@@ -3201,7 +3210,7 @@
"label": ".upload_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L228",
+ "source_location": "L232",
"id": "core_storage_ossstorage_upload_file",
"community": 13,
"norm_label": ".upload_file()"
@@ -3210,7 +3219,7 @@
"label": ".upload_base64()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L239",
+ "source_location": "L243",
"id": "core_storage_ossstorage_upload_base64",
"community": 13,
"norm_label": ".upload_base64()"
@@ -3219,7 +3228,7 @@
"label": ".delete_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L247",
+ "source_location": "L251",
"id": "core_storage_ossstorage_delete_file",
"community": 13,
"norm_label": ".delete_file()"
@@ -3228,7 +3237,7 @@
"label": ".get_url()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L256",
+ "source_location": "L260",
"id": "core_storage_ossstorage_get_url",
"community": 13,
"norm_label": ".get_url()"
@@ -3237,7 +3246,7 @@
"label": "MinIOStorage",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L261",
+ "source_location": "L265",
"id": "core_storage_miniostorage",
"community": 13,
"norm_label": "miniostorage"
@@ -3246,7 +3255,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L264",
+ "source_location": "L268",
"id": "core_storage_miniostorage_init",
"community": 13,
"norm_label": ".__init__()"
@@ -3255,7 +3264,7 @@
"label": "._generate_filename()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L282",
+ "source_location": "L286",
"id": "core_storage_miniostorage_generate_filename",
"community": 13,
"norm_label": "._generate_filename()"
@@ -3264,7 +3273,7 @@
"label": ".upload_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L288",
+ "source_location": "L292",
"id": "core_storage_miniostorage_upload_file",
"community": 13,
"norm_label": ".upload_file()"
@@ -3273,7 +3282,7 @@
"label": ".upload_base64()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L305",
+ "source_location": "L309",
"id": "core_storage_miniostorage_upload_base64",
"community": 13,
"norm_label": ".upload_base64()"
@@ -3282,7 +3291,7 @@
"label": ".delete_file()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L313",
+ "source_location": "L317",
"id": "core_storage_miniostorage_delete_file",
"community": 13,
"norm_label": ".delete_file()"
@@ -3291,7 +3300,7 @@
"label": ".get_url()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L322",
+ "source_location": "L326",
"id": "core_storage_miniostorage_get_url",
"community": 13,
"norm_label": ".get_url()"
@@ -3300,7 +3309,7 @@
"label": "._extract_object_key()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L326",
+ "source_location": "L330",
"id": "core_storage_miniostorage_extract_object_key",
"community": 13,
"norm_label": "._extract_object_key()"
@@ -3309,18 +3318,27 @@
"label": ".presigned_download_url()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L342",
+ "source_location": "L346",
"id": "core_storage_miniostorage_presigned_download_url",
"community": 13,
"norm_label": ".presigned_download_url()"
},
+ {
+ "label": ".presigned_preview_url()",
+ "file_type": "code",
+ "source_file": "app/core/storage.py",
+ "source_location": "L364",
+ "id": "core_storage_miniostorage_presigned_preview_url",
+ "community": 13,
+ "norm_label": ".presigned_preview_url()"
+ },
{
"label": "get_storage()",
"file_type": "code",
"source_file": "app/core/storage.py",
- "source_location": "L361",
+ "source_location": "L380",
"id": "core_storage_get_storage",
- "community": 89,
+ "community": 13,
"norm_label": "get_storage()"
},
{
@@ -3359,22 +3377,40 @@
"community": 13,
"norm_label": "\u5e26\u4e0b\u8f7d\u6587\u4ef6\u540d\u7684\u8bbf\u95ee url;\u9ed8\u8ba4\u5b9e\u73b0\u4e3a\u666e\u901a\u8bbf\u95ee\u5730\u5740\u3002"
},
+ {
+ "label": "\u6d4f\u89c8\u5668\u5185\u8054\u9884\u89c8 URL\uff1b\u9ed8\u8ba4\u5b9e\u73b0\u4e3a\u666e\u901a\u8bbf\u95ee\u5730\u5740\u3002",
+ "file_type": "rationale",
+ "source_file": "app/core/storage.py",
+ "source_location": "L87",
+ "id": "core_storage_rationale_87",
+ "community": 13,
+ "norm_label": "\u6d4f\u89c8\u5668\u5185\u8054\u9884\u89c8 url;\u9ed8\u8ba4\u5b9e\u73b0\u4e3a\u666e\u901a\u8bbf\u95ee\u5730\u5740\u3002"
+ },
{
"label": "MinIO \u9884\u7b7e\u540d\u4e0b\u8f7d URL\uff0c\u643a\u5e26\u539f\u59cb\u6587\u4ef6\u540d\u3002",
"file_type": "rationale",
"source_file": "app/core/storage.py",
- "source_location": "L345",
- "id": "core_storage_rationale_345",
+ "source_location": "L349",
+ "id": "core_storage_rationale_349",
"community": 13,
"norm_label": "minio \u9884\u7b7e\u540d\u4e0b\u8f7d url,\u643a\u5e26\u539f\u59cb\u6587\u4ef6\u540d\u3002"
},
+ {
+ "label": "MinIO \u9884\u7b7e\u540d\u5185\u8054\u9884\u89c8 URL\uff08PDF \u7b49 iframe \u573a\u666f\uff09\u3002",
+ "file_type": "rationale",
+ "source_file": "app/core/storage.py",
+ "source_location": "L365",
+ "id": "core_storage_rationale_365",
+ "community": 13,
+ "norm_label": "minio \u9884\u7b7e\u540d\u5185\u8054\u9884\u89c8 url(pdf \u7b49 iframe \u573a\u666f)\u3002"
+ },
{
"label": "order_status_compat.py",
"file_type": "code",
"source_file": "app/core/order_status_compat.py",
"source_location": "L1",
"id": "app_core_order_status_compat_py",
- "community": 130,
+ "community": 123,
"norm_label": "order_status_compat.py"
},
{
@@ -3383,7 +3419,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L9",
"id": "core_order_status_compat_threestatus",
- "community": 130,
+ "community": 123,
"norm_label": "threestatus"
},
{
@@ -3392,7 +3428,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L15",
"id": "core_order_status_compat_to_decimal",
- "community": 130,
+ "community": 123,
"norm_label": "_to_decimal()"
},
{
@@ -3401,7 +3437,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L15",
"id": "app_core_order_status_compat_py_decimal",
- "community": 130,
+ "community": 123,
"norm_label": "decimal"
},
{
@@ -3410,7 +3446,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L26",
"id": "core_order_status_compat_derive_three_status_from_legacy",
- "community": 130,
+ "community": 123,
"norm_label": "derive_three_status_from_legacy()"
},
{
@@ -3419,7 +3455,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L26",
"id": "app_core_order_status_compat_py_str",
- "community": 130,
+ "community": 123,
"norm_label": "str"
},
{
@@ -3428,7 +3464,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L69",
"id": "core_order_status_compat_derive_legacy_status_from_three",
- "community": 130,
+ "community": 123,
"norm_label": "derive_legacy_status_from_three()"
},
{
@@ -3437,7 +3473,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L31",
"id": "core_order_status_compat_rationale_31",
- "community": 130,
+ "community": 123,
"norm_label": "\u9636\u6bb5a\u517c\u5bb9:\u4ece\u65e7 status \u63a8\u5bfc\u4e09\u5b57\u6bb5\u3002 \u7ea6\u675f:\u65e7 status \u672c\u8eab\u6df7\u5408\u4e86\u652f\u4ed8/\u914d\u9001/\u8ba2\u5355\u751f\u547d\u5468\u671f,\u56e0\u6b64\u53ea\u80fd\u5c3d\u529b\u63a8\u65ad; \u82e5\u4e1a\u52a1\u4fa7\u5df2\u6709\u66f4\u7cbe\u786e"
},
{
@@ -3446,7 +3482,7 @@
"source_file": "app/core/order_status_compat.py",
"source_location": "L75",
"id": "core_order_status_compat_rationale_75",
- "community": 130,
+ "community": 123,
"norm_label": "\u9636\u6bb5a\u517c\u5bb9:\u4ece\u4e09\u5b57\u6bb5\u53cd\u63a8\u65e7 status(\u7528\u4e8e\u65e7\u524d\u7aef/\u65e7\u7b5b\u9009\u53c2\u6570\u517c\u5bb9)\u3002"
},
{
@@ -3671,7 +3707,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L1",
"id": "app_core_bx_auth_py",
- "community": 68,
+ "community": 71,
"norm_label": "bx_auth.py"
},
{
@@ -3680,7 +3716,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L13",
"id": "core_bx_auth_bxusercontext",
- "community": 68,
+ "community": 71,
"norm_label": "bxusercontext"
},
{
@@ -3689,7 +3725,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L22",
"id": "core_bx_auth_bxusercontext_to_tenant_user_dict",
- "community": 68,
+ "community": 71,
"norm_label": ".to_tenant_user_dict()"
},
{
@@ -3698,7 +3734,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L22",
"id": "app_core_bx_auth_py_str",
- "community": 68,
+ "community": 71,
"norm_label": "str"
},
{
@@ -3707,7 +3743,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L22",
"id": "app_core_bx_auth_py_any",
- "community": 68,
+ "community": 71,
"norm_label": "any"
},
{
@@ -3716,7 +3752,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L30",
"id": "core_bx_auth_bxusercontext_to_user_info",
- "community": 68,
+ "community": 71,
"norm_label": ".to_user_info()"
},
{
@@ -3725,7 +3761,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L41",
"id": "core_bx_auth_get_bx_current_user",
- "community": 68,
+ "community": 71,
"norm_label": "get_bx_current_user()"
},
{
@@ -3734,7 +3770,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L1",
"id": "core_bx_auth_rationale_1",
- "community": 68,
+ "community": 71,
"norm_label": "\u62a5\u9500\u6a21\u5757\u8ba4\u8bc1\u9002\u914d:\u95e8\u6237 jwt \u7528\u6237 \u2192 bx \u4e1a\u52a1\u4e0a\u4e0b\u6587\u3002"
},
{
@@ -3743,7 +3779,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L14",
"id": "core_bx_auth_rationale_14",
- "community": 68,
+ "community": 71,
"norm_label": "bx service/router \u4f7f\u7528\u7684\u5f53\u524d\u7528\u6237\u4e0a\u4e0b\u6587(sys_user.id \u4e3a uuid \u5b57\u7b26\u4e32)\u3002"
},
{
@@ -3752,7 +3788,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L23",
"id": "core_bx_auth_rationale_23",
- "community": 68,
+ "community": 71,
"norm_label": "\u4f9b get_tenant_no \u7b49\u95e8\u6237\u5de5\u5177\u4f7f\u7528\u3002"
},
{
@@ -3761,7 +3797,7 @@
"source_file": "app/core/bx_auth.py",
"source_location": "L31",
"id": "core_bx_auth_rationale_31",
- "community": 68,
+ "community": 71,
"norm_label": "\u4e0e\u95e8\u6237 jwt / apply_data_scope \u6240\u9700\u7684 user_info \u5b57\u6bb5\u5bf9\u9f50\u3002"
},
{
@@ -4319,7 +4355,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L37",
"id": "core_wechat_message_wechatmessageservice",
- "community": 67,
+ "community": 86,
"norm_label": "wechatmessageservice"
},
{
@@ -4328,7 +4364,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L49",
"id": "core_wechat_message_wechatmessageservice_init",
- "community": 67,
+ "community": 86,
"norm_label": ".__init__()"
},
{
@@ -4337,7 +4373,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L55",
"id": "core_wechat_message_wechatmessageservice_get_access_token",
- "community": 67,
+ "community": 86,
"norm_label": "._get_access_token()"
},
{
@@ -4346,7 +4382,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L55",
"id": "app_core_wechat_message_py_str",
- "community": 67,
+ "community": 86,
"norm_label": "str"
},
{
@@ -4355,7 +4391,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L85",
"id": "core_wechat_message_wechatmessageservice_send_template_message",
- "community": 67,
+ "community": 86,
"norm_label": "._send_template_message()"
},
{
@@ -4364,7 +4400,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L135",
"id": "core_wechat_message_wechatmessageservice_send_order_status",
- "community": 67,
+ "community": 86,
"norm_label": ".send_order_status()"
},
{
@@ -4373,7 +4409,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L135",
"id": "app_core_wechat_message_py_float",
- "community": 67,
+ "community": 86,
"norm_label": "float"
},
{
@@ -4382,7 +4418,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L172",
"id": "core_wechat_message_wechatmessageservice_send_payment_success",
- "community": 67,
+ "community": 86,
"norm_label": ".send_payment_success()"
},
{
@@ -4391,7 +4427,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L207",
"id": "core_wechat_message_wechatmessageservice_send_delivery_notice",
- "community": 67,
+ "community": 86,
"norm_label": ".send_delivery_notice()"
},
{
@@ -4400,7 +4436,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L244",
"id": "core_wechat_message_wechatmessageservice_send_delivery_warning",
- "community": 67,
+ "community": 86,
"norm_label": ".send_delivery_warning()"
},
{
@@ -4409,7 +4445,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L244",
"id": "app_core_wechat_message_py_int",
- "community": 67,
+ "community": 86,
"norm_label": "int"
},
{
@@ -4418,7 +4454,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L281",
"id": "core_wechat_message_wechatmessageservice_send_refund_result",
- "community": 67,
+ "community": 86,
"norm_label": ".send_refund_result()"
},
{
@@ -4427,7 +4463,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L318",
"id": "core_wechat_message_wechatmessageservice_send_urge_notification",
- "community": 67,
+ "community": 86,
"norm_label": ".send_urge_notification()"
},
{
@@ -4445,7 +4481,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L86",
"id": "core_wechat_message_rationale_86",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u6a21\u677f\u6d88\u606f args: openid: \u7528\u6237openid template_"
},
{
@@ -4454,7 +4490,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L143",
"id": "core_wechat_message_rationale_143",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u8ba2\u5355\u72b6\u6001\u901a\u77e5 args: openid: \u7528\u6237openid order_n"
},
{
@@ -4463,7 +4499,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L179",
"id": "core_wechat_message_rationale_179",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u652f\u4ed8\u6210\u529f\u901a\u77e5 args: openid: \u7528\u6237openid order_n"
},
{
@@ -4472,7 +4508,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L215",
"id": "core_wechat_message_rationale_215",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u914d\u9001\u901a\u77e5 args: openid: \u914d\u9001\u5458openid task_no:"
},
{
@@ -4481,7 +4517,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L251",
"id": "core_wechat_message_rationale_251",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u914d\u9001\u65f6\u6548\u9884\u8b66 args: openid: \u914d\u9001\u5458openid task_n"
},
{
@@ -4490,7 +4526,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L289",
"id": "core_wechat_message_rationale_289",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u9000\u6b3e\u7ed3\u679c\u901a\u77e5 args: openid: \u7528\u6237openid order_n"
},
{
@@ -4499,7 +4535,7 @@
"source_file": "app/core/wechat_message.py",
"source_location": "L325",
"id": "core_wechat_message_rationale_325",
- "community": 67,
+ "community": 86,
"norm_label": "\u53d1\u9001\u50ac\u5355\u901a\u77e5\u7ed9\u914d\u9001\u5458 args: deliver_openid: \u914d\u9001\u5458openid"
},
{
@@ -4508,7 +4544,7 @@
"source_file": "app/utils/bx_date_range.py",
"source_location": "L1",
"id": "app_utils_bx_date_range_py",
- "community": 18,
+ "community": 23,
"norm_label": "bx_date_range.py"
},
{
@@ -4517,7 +4553,7 @@
"source_file": "app/utils/bx_date_range.py",
"source_location": "L7",
"id": "utils_bx_date_range_current_month_bounds",
- "community": 18,
+ "community": 11,
"norm_label": "current_month_bounds()"
},
{
@@ -4526,7 +4562,7 @@
"source_file": "app/utils/bx_date_range.py",
"source_location": "L7",
"id": "app_utils_bx_date_range_py_datetime",
- "community": 18,
+ "community": 23,
"norm_label": "datetime"
},
{
@@ -4553,7 +4589,7 @@
"source_file": "app/utils/bx_date_range.py",
"source_location": "L1",
"id": "utils_bx_date_range_rationale_1",
- "community": 18,
+ "community": 23,
"norm_label": "\u62a5\u9500\u6a21\u5757\u65e5\u671f\u8303\u56f4\u5de5\u5177(\u4ece bx-backend \u8fc1\u79fb)\u3002"
},
{
@@ -4562,7 +4598,7 @@
"source_file": "app/utils/bx_date_range.py",
"source_location": "L8",
"id": "utils_bx_date_range_rationale_8",
- "community": 18,
+ "community": 11,
"norm_label": "\u5f53\u524d\u81ea\u7136\u6708 [month_start, next_month_start)\u3002"
},
{
@@ -4733,7 +4769,7 @@
"source_file": "app/utils/excel_export.py",
"source_location": "L104",
"id": "streamingresponse",
- "community": 3,
+ "community": 46,
"norm_label": "streamingresponse"
},
{
@@ -4976,7 +5012,7 @@
"source_file": "app/models/pl_models.py",
"source_location": "L1",
"id": "app_models_pl_models_py",
- "community": 103,
+ "community": 21,
"norm_label": "pl_models.py"
},
{
@@ -4994,7 +5030,7 @@
"source_file": "",
"source_location": "",
"id": "base",
- "community": 103,
+ "community": 21,
"norm_label": "base"
},
{
@@ -5021,7 +5057,7 @@
"source_file": "app/models/pl_models.py",
"source_location": "L105",
"id": "models_pl_models_plcert",
- "community": 28,
+ "community": 21,
"norm_label": "plcert"
},
{
@@ -5192,7 +5228,7 @@
"source_file": "app/models/pl_models.py",
"source_location": "L728",
"id": "models_pl_models_pldocumentreminder",
- "community": 28,
+ "community": 21,
"norm_label": "pldocumentreminder"
},
{
@@ -5390,7 +5426,7 @@
"source_file": "app/models/pl_models.py",
"source_location": "L729",
"id": "models_pl_models_rationale_729",
- "community": 28,
+ "community": 21,
"norm_label": "\u8bc1\u4ef6\u5230\u671f\u63d0\u9192\u8868 pl_document_reminder"
},
{
@@ -5453,7 +5489,7 @@
"source_file": "app/models/models.py",
"source_location": "L1",
"id": "app_models_models_py",
- "community": 22,
+ "community": 9,
"norm_label": "models.py"
},
{
@@ -5462,7 +5498,7 @@
"source_file": "app/models/models.py",
"source_location": "L11",
"id": "models_models_userrole",
- "community": 22,
+ "community": 9,
"norm_label": "userrole"
},
{
@@ -5471,7 +5507,7 @@
"source_file": "",
"source_location": "",
"id": "str",
- "community": 38,
+ "community": 13,
"norm_label": "str"
},
{
@@ -5480,7 +5516,7 @@
"source_file": "app/models/models.py",
"source_location": "L29",
"id": "models_models_sysuser",
- "community": 22,
+ "community": 9,
"norm_label": "sysuser"
},
{
@@ -5498,7 +5534,7 @@
"source_file": "app/models/models.py",
"source_location": "L77",
"id": "models_models_sysuserrole",
- "community": 7,
+ "community": 6,
"norm_label": "sysuserrole"
},
{
@@ -5525,7 +5561,7 @@
"source_file": "app/models/models.py",
"source_location": "L138",
"id": "models_models_sysmenu",
- "community": 38,
+ "community": 147,
"norm_label": "sysmenu"
},
{
@@ -5543,7 +5579,7 @@
"source_file": "app/models/models.py",
"source_location": "L189",
"id": "models_models_systenant",
- "community": 107,
+ "community": 96,
"norm_label": "systenant"
},
{
@@ -5552,7 +5588,7 @@
"source_file": "app/models/models.py",
"source_location": "L210",
"id": "models_models_syssite",
- "community": 96,
+ "community": 105,
"norm_label": "syssite"
},
{
@@ -5561,7 +5597,7 @@
"source_file": "app/models/models.py",
"source_location": "L236",
"id": "models_models_syspost",
- "community": 81,
+ "community": 98,
"norm_label": "syspost"
},
{
@@ -5570,7 +5606,7 @@
"source_file": "app/models/models.py",
"source_location": "L257",
"id": "models_models_sysuserpost",
- "community": 7,
+ "community": 6,
"norm_label": "sysuserpost"
},
{
@@ -5579,7 +5615,7 @@
"source_file": "app/models/models.py",
"source_location": "L282",
"id": "models_models_sysdicttype",
- "community": 66,
+ "community": 92,
"norm_label": "sysdicttype"
},
{
@@ -5588,7 +5624,7 @@
"source_file": "app/models/models.py",
"source_location": "L302",
"id": "models_models_sysethnic",
- "community": 97,
+ "community": 65,
"norm_label": "sysethnic"
},
{
@@ -5606,7 +5642,7 @@
"source_file": "app/models/models.py",
"source_location": "L354",
"id": "models_models_sysapirequestlog",
- "community": 90,
+ "community": 108,
"norm_label": "sysapirequestlog"
},
{
@@ -5615,7 +5651,7 @@
"source_file": "app/models/models.py",
"source_location": "L386",
"id": "models_models_sysapirequestloghis",
- "community": 90,
+ "community": 108,
"norm_label": "sysapirequestloghis"
},
{
@@ -5624,7 +5660,7 @@
"source_file": "app/models/models.py",
"source_location": "L428",
"id": "models_models_bizleaverequest",
- "community": 88,
+ "community": 95,
"norm_label": "bizleaverequest"
},
{
@@ -5642,7 +5678,7 @@
"source_file": "app/models/models.py",
"source_location": "L488",
"id": "models_models_wfprocessdef",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessdef"
},
{
@@ -5651,7 +5687,7 @@
"source_file": "app/models/models.py",
"source_location": "L509",
"id": "models_models_wfprocessversion",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessversion"
},
{
@@ -5660,7 +5696,7 @@
"source_file": "app/models/models.py",
"source_location": "L531",
"id": "models_models_wfnode",
- "community": 22,
+ "community": 9,
"norm_label": "wfnode"
},
{
@@ -5669,7 +5705,7 @@
"source_file": "app/models/models.py",
"source_location": "L554",
"id": "models_models_wftransition",
- "community": 98,
+ "community": 9,
"norm_label": "wftransition"
},
{
@@ -5678,7 +5714,7 @@
"source_file": "app/models/models.py",
"source_location": "L576",
"id": "models_models_wfprocessinstance",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessinstance"
},
{
@@ -5687,7 +5723,7 @@
"source_file": "app/models/models.py",
"source_location": "L601",
"id": "models_models_wftask",
- "community": 22,
+ "community": 9,
"norm_label": "wftask"
},
{
@@ -5696,7 +5732,7 @@
"source_file": "app/models/models.py",
"source_location": "L1",
"id": "models_models_rationale_1",
- "community": 22,
+ "community": 9,
"norm_label": "\u6570\u636e\u6a21\u578b(\u4e0e docs/sql/shanxia2.0.sql \u5168\u5e93\u5bfc\u51fa\u57fa\u7ebf\u5bf9\u9f50\u7684\u6838\u5fc3\u7cfb\u7edf\u8868)"
},
{
@@ -5705,7 +5741,7 @@
"source_file": "app/models/models.py",
"source_location": "L12",
"id": "models_models_rationale_12",
- "community": 22,
+ "community": 9,
"norm_label": "web \u7ba1\u7406\u7aef\u7ea6\u5b9a\u89d2\u8272(\u7531 sys_role.role_name \u6620\u5c04\u800c\u6765,\u975e\u6570\u636e\u5e93\u679a\u4e3e)"
},
{
@@ -5714,7 +5750,7 @@
"source_file": "app/models/models.py",
"source_location": "L78",
"id": "models_models_rationale_78",
- "community": 7,
+ "community": 6,
"norm_label": "\u7528\u6237-\u89d2\u8272\u5173\u8054 sys_user_role(v0.3)"
},
{
@@ -5741,7 +5777,7 @@
"source_file": "app/models/models.py",
"source_location": "L190",
"id": "models_models_rationale_190",
- "community": 107,
+ "community": 96,
"norm_label": "\u79df\u6237\u8868 sys_tenant(v0.3 2.1.1)"
},
{
@@ -5750,7 +5786,7 @@
"source_file": "app/models/models.py",
"source_location": "L258",
"id": "models_models_rationale_258",
- "community": 7,
+ "community": 6,
"norm_label": "\u7528\u6237-\u804c\u4f4d\u5173\u8054 sys_user_post"
},
{
@@ -5759,7 +5795,7 @@
"source_file": "app/models/models.py",
"source_location": "L303",
"id": "models_models_rationale_303",
- "community": 97,
+ "community": 65,
"norm_label": "\u6c11\u65cf\u7801\u8868 sys_ethnic(\u56fd\u6807 gb/t 3304,\u5168\u5c40)"
},
{
@@ -5768,7 +5804,7 @@
"source_file": "app/models/models.py",
"source_location": "L429",
"id": "models_models_rationale_429",
- "community": 88,
+ "community": 95,
"norm_label": "\u8bf7\u5047\u7533\u8bf7 biz_leave_request"
},
{
@@ -5777,7 +5813,7 @@
"source_file": "app/models/models.py",
"source_location": "L510",
"id": "models_models_rationale_510",
- "community": 22,
+ "community": 9,
"norm_label": "\u6d41\u7a0b\u5b9a\u4e49\u7248\u672c wf_process_version"
},
{
@@ -5786,7 +5822,7 @@
"source_file": "app/models/models.py",
"source_location": "L555",
"id": "models_models_rationale_555",
- "community": 98,
+ "community": 9,
"norm_label": "\u6d41\u7a0b\u8fde\u7ebf/\u8f6c\u79fb wf_transition"
},
{
@@ -5795,7 +5831,7 @@
"source_file": "app/models/models.py",
"source_location": "L577",
"id": "models_models_rationale_577",
- "community": 22,
+ "community": 9,
"norm_label": "\u6d41\u7a0b\u5b9e\u4f8b wf_process_instance"
},
{
@@ -5804,7 +5840,7 @@
"source_file": "app/models/__init__.py",
"source_location": "L1",
"id": "app_models_init_py",
- "community": 103,
+ "community": 21,
"norm_label": "__init__.py"
},
{
@@ -5840,7 +5876,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L78",
"id": "models_crm_models_sysoss",
- "community": 55,
+ "community": 122,
"norm_label": "sysoss"
},
{
@@ -5849,7 +5885,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L110",
"id": "models_crm_models_crmcustomer",
- "community": 6,
+ "community": 33,
"norm_label": "crmcustomer"
},
{
@@ -5876,7 +5912,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L256",
"id": "models_crm_models_crmcustomerfollow",
- "community": 8,
+ "community": 67,
"norm_label": "crmcustomerfollow"
},
{
@@ -5885,7 +5921,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L287",
"id": "models_crm_models_crmcustomerpool",
- "community": 6,
+ "community": 33,
"norm_label": "crmcustomerpool"
},
{
@@ -5894,7 +5930,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L313",
"id": "models_crm_models_crmcustomerpoolrule",
- "community": 33,
+ "community": 97,
"norm_label": "crmcustomerpoolrule"
},
{
@@ -6011,7 +6047,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L806",
"id": "models_crm_models_crmquoteapproval",
- "community": 74,
+ "community": 31,
"norm_label": "crmquoteapproval"
},
{
@@ -6047,7 +6083,7 @@
"source_file": "app/models/crm_models.py",
"source_location": "L931",
"id": "models_crm_models_crmsupplierinfo",
- "community": 29,
+ "community": 4,
"norm_label": "crmsupplierinfo"
},
{
@@ -6065,7 +6101,7 @@
"source_file": "app/models/db_models.py",
"source_location": "L1",
"id": "app_models_db_models_py",
- "community": 61,
+ "community": 93,
"norm_label": "db_models.py"
},
{
@@ -6074,7 +6110,7 @@
"source_file": "app/models/db_models.py",
"source_location": "L9",
"id": "models_db_models_dbpurchaseplan",
- "community": 61,
+ "community": 85,
"norm_label": "dbpurchaseplan"
},
{
@@ -6083,7 +6119,7 @@
"source_file": "app/models/db_models.py",
"source_location": "L44",
"id": "models_db_models_dbinboundoutbound",
- "community": 61,
+ "community": 93,
"norm_label": "dbinboundoutbound"
},
{
@@ -6092,7 +6128,7 @@
"source_file": "app/models/db_models.py",
"source_location": "L77",
"id": "models_db_models_dbweighingslip",
- "community": 61,
+ "community": 85,
"norm_label": "dbweighingslip"
},
{
@@ -6110,7 +6146,7 @@
"source_file": "app/models/db_models.py",
"source_location": "L1",
"id": "models_db_models_rationale_1",
- "community": 61,
+ "community": 93,
"norm_label": "\u5730\u78c5(db)\u6a21\u5757\u6570\u636e\u6a21\u578b \u2014 \u5bf9\u9f50 docs/sql/db_tables.sql"
},
{
@@ -6119,7 +6155,7 @@
"source_file": "app/models/base.py",
"source_location": "L1",
"id": "app_models_base_py",
- "community": 9,
+ "community": 148,
"norm_label": "base.py"
},
{
@@ -6128,7 +6164,7 @@
"source_file": "app/models/base.py",
"source_location": "L10",
"id": "models_base_basemodel",
- "community": 9,
+ "community": 80,
"norm_label": "basemodel"
},
{
@@ -6137,7 +6173,7 @@
"source_file": "app/models/base.py",
"source_location": "L15",
"id": "models_base_basemodel_tablename",
- "community": 9,
+ "community": 80,
"norm_label": ".__tablename__()"
},
{
@@ -6146,7 +6182,7 @@
"source_file": "app/models/base.py",
"source_location": "L15",
"id": "app_models_base_py_str",
- "community": 9,
+ "community": 80,
"norm_label": "str"
},
{
@@ -6155,7 +6191,7 @@
"source_file": "app/models/base.py",
"source_location": "L29",
"id": "models_base_basemodel_to_dict",
- "community": 9,
+ "community": 80,
"norm_label": ".to_dict()"
},
{
@@ -6164,7 +6200,7 @@
"source_file": "app/models/base.py",
"source_location": "L44",
"id": "models_base_softdeletemodel",
- "community": 9,
+ "community": 148,
"norm_label": "softdeletemodel"
},
{
@@ -6173,7 +6209,7 @@
"source_file": "app/models/base.py",
"source_location": "L51",
"id": "models_base_softdeletemodel_get_active",
- "community": 9,
+ "community": 148,
"norm_label": ".get_active()"
},
{
@@ -6182,7 +6218,7 @@
"source_file": "app/models/base.py",
"source_location": "L55",
"id": "models_base_softdeletemodel_soft_delete",
- "community": 9,
+ "community": 148,
"norm_label": ".soft_delete()"
},
{
@@ -6191,7 +6227,7 @@
"source_file": "app/models/base.py",
"source_location": "L60",
"id": "models_base_softdeletemodel_restore",
- "community": 9,
+ "community": 148,
"norm_label": ".restore()"
},
{
@@ -6209,7 +6245,7 @@
"source_file": "app/models/bx_models.py",
"source_location": "L10",
"id": "models_bx_models_bxexpenseitem",
- "community": 68,
+ "community": 71,
"norm_label": "bxexpenseitem"
},
{
@@ -6290,7 +6326,7 @@
"source_file": "app/models/bx_models.py",
"source_location": "L251",
"id": "models_bx_models_bxattachment",
- "community": 95,
+ "community": 71,
"norm_label": "bxattachment"
},
{
@@ -6785,7 +6821,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L1",
"id": "app_schemas_pl_plan_py",
- "community": 0,
+ "community": 75,
"norm_label": "plan.py"
},
{
@@ -6839,7 +6875,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L119",
"id": "pl_plan_plancreate",
- "community": 0,
+ "community": 75,
"norm_label": "plancreate"
},
{
@@ -6857,7 +6893,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L139",
"id": "pl_plan_planupdate",
- "community": 0,
+ "community": 75,
"norm_label": "planupdate"
},
{
@@ -6866,7 +6902,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L175",
"id": "pl_plan_planread",
- "community": 0,
+ "community": 75,
"norm_label": "planread"
},
{
@@ -6875,7 +6911,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L199",
"id": "pl_plan_planwithproducts",
- "community": 0,
+ "community": 75,
"norm_label": "planwithproducts"
},
{
@@ -6884,7 +6920,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L208",
"id": "pl_plan_createfromcontractrequest",
- "community": 0,
+ "community": 75,
"norm_label": "createfromcontractrequest"
},
{
@@ -6893,7 +6929,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L216",
"id": "pl_plan_plancreatefull",
- "community": 0,
+ "community": 75,
"norm_label": "plancreatefull"
},
{
@@ -6911,7 +6947,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L242",
"id": "pl_plan_planproductcertitem",
- "community": 0,
+ "community": 75,
"norm_label": "planproductcertitem"
},
{
@@ -6920,7 +6956,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L249",
"id": "pl_plan_planproductcertsupdate",
- "community": 0,
+ "community": 75,
"norm_label": "planproductcertsupdate"
},
{
@@ -6947,7 +6983,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L271",
"id": "pl_plan_planarchivebody",
- "community": 0,
+ "community": 75,
"norm_label": "planarchivebody"
},
{
@@ -6956,7 +6992,7 @@
"source_file": "app/schemas/pl/plan.py",
"source_location": "L277",
"id": "pl_plan_planlistresponse",
- "community": 0,
+ "community": 75,
"norm_label": "planlistresponse"
},
{
@@ -6965,7 +7001,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L1",
"id": "app_schemas_pl_transport_py",
- "community": 0,
+ "community": 51,
"norm_label": "transport.py"
},
{
@@ -6983,7 +7019,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L40",
"id": "pl_transport_transportcreate",
- "community": 0,
+ "community": 51,
"norm_label": "transportcreate"
},
{
@@ -6992,7 +7028,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L45",
"id": "pl_transport_transportarrange",
- "community": 80,
+ "community": 7,
"norm_label": "transportarrange"
},
{
@@ -7001,7 +7037,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L69",
"id": "pl_transport_transportinventorylinkread",
- "community": 126,
+ "community": 51,
"norm_label": "transportinventorylinkread"
},
{
@@ -7010,7 +7046,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L79",
"id": "pl_transport_transportsitelinkread",
- "community": 126,
+ "community": 51,
"norm_label": "transportsitelinkread"
},
{
@@ -7028,7 +7064,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L117",
"id": "pl_transport_transportread",
- "community": 0,
+ "community": 51,
"norm_label": "transportread"
},
{
@@ -7037,7 +7073,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L136",
"id": "pl_transport_transportarrangeresult",
- "community": 0,
+ "community": 51,
"norm_label": "transportarrangeresult"
},
{
@@ -7064,7 +7100,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L165",
"id": "pl_transport_transportfeedback",
- "community": 0,
+ "community": 51,
"norm_label": "transportfeedback"
},
{
@@ -7073,7 +7109,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L174",
"id": "pl_transport_publictransportfeedback",
- "community": 31,
+ "community": 51,
"norm_label": "publictransportfeedback"
},
{
@@ -7082,7 +7118,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L180",
"id": "pl_transport_publictransportplanproductread",
- "community": 31,
+ "community": 51,
"norm_label": "publictransportplanproductread"
},
{
@@ -7091,7 +7127,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L189",
"id": "pl_transport_publictransportpageread",
- "community": 31,
+ "community": 51,
"norm_label": "publictransportpageread"
},
{
@@ -7100,7 +7136,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L211",
"id": "pl_transport_approvalsubmit",
- "community": 0,
+ "community": 51,
"norm_label": "approvalsubmit"
},
{
@@ -7109,7 +7145,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L216",
"id": "pl_transport_approvalrequest",
- "community": 0,
+ "community": 51,
"norm_label": "approvalrequest"
},
{
@@ -7118,7 +7154,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L222",
"id": "pl_transport_approvalrecordread",
- "community": 0,
+ "community": 51,
"norm_label": "approvalrecordread"
},
{
@@ -7136,7 +7172,7 @@
"source_file": "app/schemas/pl/transport.py",
"source_location": "L253",
"id": "pl_transport_transportlistresponse",
- "community": 0,
+ "community": 51,
"norm_label": "transportlistresponse"
},
{
@@ -7271,7 +7307,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L1",
"id": "app_schemas_pl_resource_snapshot_py",
- "community": 28,
+ "community": 21,
"norm_label": "resource_snapshot.py"
},
{
@@ -7280,7 +7316,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L11",
"id": "pl_resource_snapshot_snapshotcertread",
- "community": 28,
+ "community": 21,
"norm_label": "snapshotcertread"
},
{
@@ -7289,7 +7325,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L29",
"id": "pl_resource_snapshot_snapshotpersonnelrow",
- "community": 28,
+ "community": 21,
"norm_label": "snapshotpersonnelrow"
},
{
@@ -7298,7 +7334,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L45",
"id": "pl_resource_snapshot_transportresourcesnapshot",
- "community": 28,
+ "community": 21,
"norm_label": "transportresourcesnapshot"
},
{
@@ -7307,7 +7343,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L65",
"id": "pl_resource_snapshot_parse_resource_snapshot",
- "community": 28,
+ "community": 51,
"norm_label": "parse_resource_snapshot()"
},
{
@@ -7316,7 +7352,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L65",
"id": "app_schemas_pl_resource_snapshot_py_any",
- "community": 28,
+ "community": 51,
"norm_label": "any"
},
{
@@ -7325,7 +7361,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L81",
"id": "pl_resource_snapshot_planresourcesnapshotmixin",
- "community": 0,
+ "community": 51,
"norm_label": "planresourcesnapshotmixin"
},
{
@@ -7334,7 +7370,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L91",
"id": "pl_resource_snapshot_planresourcesnapshotmixin_coerce_resource_snapshot",
- "community": 28,
+ "community": 51,
"norm_label": "._coerce_resource_snapshot()"
},
{
@@ -7343,7 +7379,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L1",
"id": "pl_resource_snapshot_rationale_1",
- "community": 28,
+ "community": 21,
"norm_label": "\u8fd0\u8f93\u8ba1\u5212 - \u5b89\u6392\u8fd0\u8f93\u65f6\u8f66\u8f86/\u4eba\u5458/\u8bc1\u4ef6\u8d44\u6e90\u5feb\u7167 schema"
},
{
@@ -7352,7 +7388,7 @@
"source_file": "app/schemas/pl/resource_snapshot.py",
"source_location": "L66",
"id": "pl_resource_snapshot_rationale_66",
- "community": 28,
+ "community": 51,
"norm_label": "\u4ece orm \u6587\u672c\u5217\u6216 dict \u89e3\u6790\u5feb\u7167\u3002"
},
{
@@ -7379,7 +7415,7 @@
"source_file": "app/schemas/pl/freight.py",
"source_location": "L1",
"id": "app_schemas_pl_freight_py",
- "community": 9,
+ "community": 80,
"norm_label": "freight.py"
},
{
@@ -7397,7 +7433,7 @@
"source_file": "app/schemas/pl/freight.py",
"source_location": "L26",
"id": "pl_freight_freightsettlementcreate",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementcreate"
},
{
@@ -7406,7 +7442,7 @@
"source_file": "app/schemas/pl/freight.py",
"source_location": "L32",
"id": "pl_freight_freightsettlementcreate_check_ids",
- "community": 9,
+ "community": 80,
"norm_label": ".check_ids()"
},
{
@@ -7415,14 +7451,14 @@
"source_file": "app/schemas/pl/freight.py",
"source_location": "L38",
"id": "pl_freight_freightsettlementupdate",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementupdate"
},
{
"label": "FreightSettlementRead",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L47",
+ "source_location": "L50",
"id": "pl_freight_freightsettlementread",
"community": 0,
"norm_label": "freightsettlementread"
@@ -7431,16 +7467,16 @@
"label": "FreightSettlementListItem",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L61",
+ "source_location": "L64",
"id": "pl_freight_freightsettlementlistitem",
- "community": 9,
+ "community": 0,
"norm_label": "freightsettlementlistitem"
},
{
"label": "FreightSettlementTransportRead",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L75",
+ "source_location": "L78",
"id": "pl_freight_freightsettlementtransportread",
"community": 0,
"norm_label": "freightsettlementtransportread"
@@ -7449,43 +7485,43 @@
"label": "UnsettledPlanItem",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L85",
+ "source_location": "L88",
"id": "pl_freight_unsettledplanitem",
- "community": 9,
+ "community": 80,
"norm_label": "unsettledplanitem"
},
{
"label": "UnsettledPlanListResponse",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L99",
+ "source_location": "L108",
"id": "pl_freight_unsettledplanlistresponse",
- "community": 9,
+ "community": 80,
"norm_label": "unsettledplanlistresponse"
},
{
"label": "SettlementPlanSummary",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L104",
+ "source_location": "L113",
"id": "pl_freight_settlementplansummary",
- "community": 9,
+ "community": 80,
"norm_label": "settlementplansummary"
},
{
"label": "SettlementApprovalFlowItem",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L113",
+ "source_location": "L122",
"id": "pl_freight_settlementapprovalflowitem",
- "community": 9,
+ "community": 80,
"norm_label": "settlementapprovalflowitem"
},
{
"label": "FreightSettlementWithTransports",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L127",
+ "source_location": "L136",
"id": "pl_freight_freightsettlementwithtransports",
"community": 0,
"norm_label": "freightsettlementwithtransports"
@@ -7494,52 +7530,52 @@
"label": "FreightSettlementSubmitApprovalBody",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L144",
+ "source_location": "L153",
"id": "pl_freight_freightsettlementsubmitapprovalbody",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementsubmitapprovalbody"
},
{
"label": "FreightSettlementApprovalActionBody",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L151",
+ "source_location": "L160",
"id": "pl_freight_freightsettlementapprovalactionbody",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementapprovalactionbody"
},
{
"label": "FreightSettlementDisburseBody",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L156",
+ "source_location": "L165",
"id": "pl_freight_freightsettlementdisbursebody",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementdisbursebody"
},
{
"label": "RemittanceVoucherCreate",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L169",
+ "source_location": "L178",
"id": "pl_freight_remittancevouchercreate",
- "community": 9,
+ "community": 80,
"norm_label": "remittancevouchercreate"
},
{
"label": "RemittanceVoucherRead",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L178",
+ "source_location": "L187",
"id": "pl_freight_remittancevoucherread",
- "community": 9,
+ "community": 80,
"norm_label": "remittancevoucherread"
},
{
"label": "FreightSettlementListQuery",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L197",
+ "source_location": "L206",
"id": "pl_freight_freightsettlementlistquery",
"community": 0,
"norm_label": "freightsettlementlistquery"
@@ -7548,18 +7584,18 @@
"label": "FreightSettlementListResponse",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L206",
+ "source_location": "L215",
"id": "pl_freight_freightsettlementlistresponse",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementlistresponse"
},
{
"label": "FreightSettlementByTransportRead",
"file_type": "code",
"source_file": "app/schemas/pl/freight.py",
- "source_location": "L211",
+ "source_location": "L220",
"id": "pl_freight_freightsettlementbytransportread",
- "community": 9,
+ "community": 80,
"norm_label": "freightsettlementbytransportread"
},
{
@@ -7568,7 +7604,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L1",
"id": "app_schemas_pl_base_data_py",
- "community": 21,
+ "community": 25,
"norm_label": "base_data.py"
},
{
@@ -7577,7 +7613,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L19",
"id": "pl_base_data_carrierbase",
- "community": 21,
+ "community": 25,
"norm_label": "carrierbase"
},
{
@@ -7586,7 +7622,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L27",
"id": "pl_base_data_carrierqualificationbase",
- "community": 21,
+ "community": 25,
"norm_label": "carrierqualificationbase"
},
{
@@ -7595,7 +7631,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L45",
"id": "pl_base_data_carriercreate",
- "community": 21,
+ "community": 25,
"norm_label": "carriercreate"
},
{
@@ -7604,7 +7640,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L54",
"id": "pl_base_data_carriercreate_validate_qualification",
- "community": 21,
+ "community": 25,
"norm_label": ".validate_qualification()"
},
{
@@ -7613,7 +7649,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L64",
"id": "pl_base_data_carrierupdate",
- "community": 21,
+ "community": 25,
"norm_label": "carrierupdate"
},
{
@@ -7622,7 +7658,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L86",
"id": "pl_base_data_carrierupdate_validate_qualification_patch",
- "community": 21,
+ "community": 25,
"norm_label": ".validate_qualification_patch()"
},
{
@@ -7631,7 +7667,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L111",
"id": "pl_base_data_carrierauditreject",
- "community": 21,
+ "community": 25,
"norm_label": "carrierauditreject"
},
{
@@ -7640,7 +7676,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L117",
"id": "pl_base_data_carrierread",
- "community": 21,
+ "community": 25,
"norm_label": "carrierread"
},
{
@@ -7667,7 +7703,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L172",
"id": "pl_base_data_vehiclepersonnelrow",
- "community": 21,
+ "community": 25,
"norm_label": "vehiclepersonnelrow"
},
{
@@ -7676,7 +7712,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L183",
"id": "pl_base_data_certrow",
- "community": 28,
+ "community": 21,
"norm_label": "certrow"
},
{
@@ -7685,7 +7721,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L198",
"id": "pl_base_data_certread",
- "community": 28,
+ "community": 21,
"norm_label": "certread"
},
{
@@ -7694,7 +7730,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L214",
"id": "pl_base_data_vehiclebase",
- "community": 21,
+ "community": 25,
"norm_label": "vehiclebase"
},
{
@@ -7703,7 +7739,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L227",
"id": "pl_base_data_vehiclecreate",
- "community": 21,
+ "community": 25,
"norm_label": "vehiclecreate"
},
{
@@ -7712,7 +7748,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L233",
"id": "pl_base_data_vehicleupdate",
- "community": 21,
+ "community": 25,
"norm_label": "vehicleupdate"
},
{
@@ -7721,7 +7757,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L247",
"id": "pl_base_data_vehicleread",
- "community": 21,
+ "community": 25,
"norm_label": "vehicleread"
},
{
@@ -7730,7 +7766,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L261",
"id": "pl_base_data_vehicledetailread",
- "community": 21,
+ "community": 25,
"norm_label": "vehicledetailread"
},
{
@@ -7739,7 +7775,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L272",
"id": "pl_base_data_personnelbase",
- "community": 21,
+ "community": 25,
"norm_label": "personnelbase"
},
{
@@ -7748,7 +7784,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L281",
"id": "pl_base_data_personnelcreate",
- "community": 21,
+ "community": 25,
"norm_label": "personnelcreate"
},
{
@@ -7757,7 +7793,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L286",
"id": "pl_base_data_personnelupdate",
- "community": 21,
+ "community": 25,
"norm_label": "personnelupdate"
},
{
@@ -7766,7 +7802,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L297",
"id": "pl_base_data_personnelread",
- "community": 21,
+ "community": 25,
"norm_label": "personnelread"
},
{
@@ -7775,7 +7811,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L311",
"id": "pl_base_data_personneldetailread",
- "community": 21,
+ "community": 25,
"norm_label": "personneldetailread"
},
{
@@ -7784,7 +7820,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L321",
"id": "pl_base_data_driverbase",
- "community": 21,
+ "community": 25,
"norm_label": "driverbase"
},
{
@@ -7793,7 +7829,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L334",
"id": "pl_base_data_drivercreate",
- "community": 21,
+ "community": 25,
"norm_label": "drivercreate"
},
{
@@ -7802,7 +7838,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L338",
"id": "pl_base_data_driverupdate",
- "community": 21,
+ "community": 25,
"norm_label": "driverupdate"
},
{
@@ -7811,7 +7847,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L352",
"id": "pl_base_data_driverread",
- "community": 21,
+ "community": 25,
"norm_label": "driverread"
},
{
@@ -7820,7 +7856,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L365",
"id": "pl_base_data_driverlistresponse",
- "community": 21,
+ "community": 25,
"norm_label": "driverlistresponse"
},
{
@@ -7829,7 +7865,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L375",
"id": "pl_base_data_vehicledrivercreate",
- "community": 21,
+ "community": 25,
"norm_label": "vehicledrivercreate"
},
{
@@ -7838,7 +7874,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L382",
"id": "pl_base_data_vehicledriverread",
- "community": 80,
+ "community": 25,
"norm_label": "vehicledriverread"
},
{
@@ -7847,7 +7883,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L392",
"id": "pl_base_data_carrierlistresponse",
- "community": 21,
+ "community": 25,
"norm_label": "carrierlistresponse"
},
{
@@ -7856,7 +7892,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L397",
"id": "pl_base_data_vehiclelistresponse",
- "community": 21,
+ "community": 25,
"norm_label": "vehiclelistresponse"
},
{
@@ -7865,7 +7901,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L402",
"id": "pl_base_data_personnellistresponse",
- "community": 21,
+ "community": 25,
"norm_label": "personnellistresponse"
},
{
@@ -7874,7 +7910,7 @@
"source_file": "app/schemas/pl/base_data.py",
"source_location": "L1",
"id": "app_schemas_pl_base_data_py_pl_base_data_rationale_1",
- "community": 21,
+ "community": 25,
"norm_label": "\u8fd0\u8f93\u8ba1\u5212\u7ba1\u7406 - \u57fa\u7840\u6570\u636e schema(\u627f\u8fd0\u5546\u3001\u8f66\u8f86\u3001\u4eba\u5458\u3001\u8bc1\u4e66)"
},
{
@@ -8351,7 +8387,7 @@
"source_file": "app/schemas/monitor/operlog.py",
"source_location": "L1",
"id": "app_schemas_monitor_operlog_py",
- "community": 36,
+ "community": 146,
"norm_label": "operlog.py"
},
{
@@ -8360,7 +8396,7 @@
"source_file": "app/schemas/monitor/operlog.py",
"source_location": "L8",
"id": "monitor_operlog_operloglistbody",
- "community": 36,
+ "community": 146,
"norm_label": "operloglistbody"
},
{
@@ -8369,7 +8405,7 @@
"source_file": "app/schemas/monitor/operlog.py",
"source_location": "L21",
"id": "monitor_operlog_operlogdetailbody",
- "community": 36,
+ "community": 146,
"norm_label": "operlogdetailbody"
},
{
@@ -8378,7 +8414,7 @@
"source_file": "app/schemas/monitor/operlog.py",
"source_location": "L1",
"id": "monitor_operlog_rationale_1",
- "community": 36,
+ "community": 146,
"norm_label": "\u64cd\u4f5c\u65e5\u5fd7(\u517c\u5bb9 ruoyi operlog \u89c6\u56fe)"
},
{
@@ -8432,7 +8468,7 @@
"source_file": "app/schemas/bx/reimburse.py",
"source_location": "L41",
"id": "bx_reimburse_reimburseapplycreate",
- "community": 80,
+ "community": 7,
"norm_label": "reimburseapplycreate"
},
{
@@ -8441,7 +8477,7 @@
"source_file": "app/schemas/bx/reimburse.py",
"source_location": "L51",
"id": "bx_reimburse_reimburseapplycreate_details_must_not_be_empty",
- "community": 80,
+ "community": 7,
"norm_label": ".details_must_not_be_empty()"
},
{
@@ -8450,7 +8486,7 @@
"source_file": "app/schemas/bx/reimburse.py",
"source_location": "L57",
"id": "bx_reimburse_reimburseapplyupdate",
- "community": 80,
+ "community": 7,
"norm_label": "reimburseapplyupdate"
},
{
@@ -8459,7 +8495,7 @@
"source_file": "app/schemas/bx/reimburse.py",
"source_location": "L66",
"id": "bx_reimburse_reimburseapplyout",
- "community": 15,
+ "community": 23,
"norm_label": "reimburseapplyout"
},
{
@@ -8468,7 +8504,7 @@
"source_file": "app/schemas/bx/reimburse.py",
"source_location": "L94",
"id": "bx_reimburse_reimburseapprovalcreate",
- "community": 80,
+ "community": 7,
"norm_label": "reimburseapprovalcreate"
},
{
@@ -8639,7 +8675,7 @@
"source_file": "app/schemas/bx/expense_item.py",
"source_location": "L49",
"id": "bx_expense_item_expenseitemout",
- "community": 68,
+ "community": 71,
"norm_label": "expenseitemout"
},
{
@@ -8666,7 +8702,7 @@
"source_file": "app/schemas/bx/attachment.py",
"source_location": "L1",
"id": "app_schemas_bx_attachment_py",
- "community": 80,
+ "community": 7,
"norm_label": "attachment.py"
},
{
@@ -8675,7 +8711,7 @@
"source_file": "app/schemas/bx/attachment.py",
"source_location": "L9",
"id": "bx_attachment_attachmentout",
- "community": 80,
+ "community": 7,
"norm_label": "attachmentout"
},
{
@@ -8684,7 +8720,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L1",
"id": "app_schemas_bx_advance_py",
- "community": 23,
+ "community": 133,
"norm_label": "advance.py"
},
{
@@ -8693,7 +8729,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L9",
"id": "bx_advance_coerce_optional_id",
- "community": 129,
+ "community": 133,
"norm_label": "_coerce_optional_id()"
},
{
@@ -8702,7 +8738,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L16",
"id": "bx_advance_advanceapplycreate",
- "community": 129,
+ "community": 133,
"norm_label": "advanceapplycreate"
},
{
@@ -8711,7 +8747,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L27",
"id": "bx_advance_advanceapplycreate_validate_expense_item_id",
- "community": 129,
+ "community": 133,
"norm_label": ".validate_expense_item_id()"
},
{
@@ -8720,7 +8756,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L31",
"id": "bx_advance_advanceapplyupdate",
- "community": 129,
+ "community": 133,
"norm_label": "advanceapplyupdate"
},
{
@@ -8729,7 +8765,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L42",
"id": "bx_advance_advanceapplyupdate_validate_expense_item_id",
- "community": 129,
+ "community": 133,
"norm_label": ".validate_expense_item_id()"
},
{
@@ -8738,7 +8774,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L46",
"id": "bx_advance_advanceapplyout",
- "community": 80,
+ "community": 133,
"norm_label": "advanceapplyout"
},
{
@@ -8747,7 +8783,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L70",
"id": "bx_advance_advanceapprovalcreate",
- "community": 80,
+ "community": 133,
"norm_label": "advanceapprovalcreate"
},
{
@@ -8756,7 +8792,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L77",
"id": "bx_advance_advanceapprovalout",
- "community": 63,
+ "community": 28,
"norm_label": "advanceapprovalout"
},
{
@@ -8765,7 +8801,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L90",
"id": "bx_advance_advancemystatsout",
- "community": 63,
+ "community": 28,
"norm_label": "advancemystatsout"
},
{
@@ -8774,7 +8810,7 @@
"source_file": "app/schemas/bx/advance.py",
"source_location": "L105",
"id": "bx_advance_advanceapproverpendingstatsout",
- "community": 63,
+ "community": 28,
"norm_label": "advanceapproverpendingstatsout"
},
{
@@ -8882,7 +8918,7 @@
"source_file": "app/schemas/bx/common.py",
"source_location": "L36",
"id": "bx_common_apiresponse",
- "community": 63,
+ "community": 20,
"norm_label": "apiresponse"
},
{
@@ -8891,7 +8927,7 @@
"source_file": "app/schemas/bx/common.py",
"source_location": "L42",
"id": "bx_common_pageddata",
- "community": 63,
+ "community": 20,
"norm_label": "pageddata"
},
{
@@ -8918,7 +8954,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L1",
"id": "app_schemas_bx_workflow_py",
- "community": 133,
+ "community": 7,
"norm_label": "workflow.py"
},
{
@@ -8927,7 +8963,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L7",
"id": "bx_workflow_coerce_optional_id",
- "community": 133,
+ "community": 7,
"norm_label": "_coerce_optional_id()"
},
{
@@ -8936,7 +8972,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L13",
"id": "bx_workflow_workflownodecreate",
- "community": 133,
+ "community": 7,
"norm_label": "workflownodecreate"
},
{
@@ -8945,7 +8981,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L23",
"id": "bx_workflow_workflownodecreate_validate_approver_id",
- "community": 133,
+ "community": 7,
"norm_label": ".validate_approver_id()"
},
{
@@ -8954,7 +8990,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L27",
"id": "bx_workflow_workflownodeout",
- "community": 133,
+ "community": 7,
"norm_label": "workflownodeout"
},
{
@@ -8963,7 +8999,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L37",
"id": "bx_workflow_workflowdefcreate",
- "community": 133,
+ "community": 7,
"norm_label": "workflowdefcreate"
},
{
@@ -8972,7 +9008,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L46",
"id": "bx_workflow_workflowdefupdate",
- "community": 133,
+ "community": 7,
"norm_label": "workflowdefupdate"
},
{
@@ -8981,7 +9017,7 @@
"source_file": "app/schemas/bx/workflow.py",
"source_location": "L55",
"id": "bx_workflow_workflowdefout",
- "community": 63,
+ "community": 20,
"norm_label": "workflowdefout"
},
{
@@ -9458,7 +9494,7 @@
"source_file": "app/schemas/crm/customer_follow.py",
"source_location": "L56",
"id": "crm_customer_follow_customerfollowdetailbody",
- "community": 80,
+ "community": 7,
"norm_label": "customerfollowdetailbody"
},
{
@@ -9467,7 +9503,7 @@
"source_file": "app/schemas/crm/customer_follow.py",
"source_location": "L60",
"id": "crm_customer_follow_customerfollowbycustomerbody",
- "community": 80,
+ "community": 7,
"norm_label": "customerfollowbycustomerbody"
},
{
@@ -10088,7 +10124,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L39",
"id": "crm_customer_customerlistbody_to_list_kwargs",
- "community": 38,
+ "community": 13,
"norm_label": ".to_list_kwargs()"
},
{
@@ -10097,7 +10133,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L39",
"id": "app_schemas_crm_customer_py_str",
- "community": 38,
+ "community": 13,
"norm_label": "str"
},
{
@@ -10151,7 +10187,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L207",
"id": "crm_customer_customerdetailbody",
- "community": 80,
+ "community": 7,
"norm_label": "customerdetailbody"
},
{
@@ -10196,7 +10232,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L257",
"id": "crm_customer_customerassignpoolbody",
- "community": 80,
+ "community": 7,
"norm_label": "customerassignpoolbody"
},
{
@@ -10205,7 +10241,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L268",
"id": "crm_customer_customercheckduplicatebody",
- "community": 80,
+ "community": 7,
"norm_label": "customercheckduplicatebody"
},
{
@@ -10223,7 +10259,7 @@
"source_file": "app/schemas/crm/customer.py",
"source_location": "L40",
"id": "crm_customer_rationale_40",
- "community": 38,
+ "community": 13,
"norm_label": "\u89e3\u6790\u5217\u8868\u67e5\u8be2\u53c2\u6570,\u4f9b api \u4e0e crud \u5171\u7528\u3002"
},
{
@@ -10259,7 +10295,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L1",
"id": "app_schemas_crm_contract_py",
- "community": 51,
+ "community": 80,
"norm_label": "contract.py"
},
{
@@ -10286,7 +10322,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L52",
"id": "crm_contract_contractlistquery",
- "community": 51,
+ "community": 47,
"norm_label": "contractlistquery"
},
{
@@ -10304,7 +10340,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L142",
"id": "crm_contract_contractupdatebody",
- "community": 51,
+ "community": 80,
"norm_label": "contractupdatebody"
},
{
@@ -10313,7 +10349,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L146",
"id": "crm_contract_contractsubmitbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractsubmitbody"
},
{
@@ -10322,7 +10358,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L152",
"id": "crm_contract_contractbatchsubmitbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractbatchsubmitbody"
},
{
@@ -10331,7 +10367,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L158",
"id": "crm_contract_contractwithdrawbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractwithdrawbody"
},
{
@@ -10340,7 +10376,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L163",
"id": "crm_contract_contractstatusbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractstatusbody"
},
{
@@ -10349,7 +10385,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L168",
"id": "crm_contract_contractinvalidbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractinvalidbody"
},
{
@@ -10358,7 +10394,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L174",
"id": "crm_contract_contracttemplatesavebody",
- "community": 51,
+ "community": 80,
"norm_label": "contracttemplatesavebody"
},
{
@@ -10367,7 +10403,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L180",
"id": "crm_contract_contractdeletebody",
- "community": 51,
+ "community": 80,
"norm_label": "contractdeletebody"
},
{
@@ -10376,7 +10412,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L184",
"id": "crm_contract_contractapprovalactionbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractapprovalactionbody"
},
{
@@ -10385,7 +10421,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L196",
"id": "crm_contract_contractuploadfilebody",
- "community": 51,
+ "community": 80,
"norm_label": "contractuploadfilebody"
},
{
@@ -10394,7 +10430,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L201",
"id": "crm_contract_contractuploadattachmentsbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractuploadattachmentsbody"
},
{
@@ -10403,7 +10439,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L209",
"id": "crm_contract_contractexportbody",
- "community": 51,
+ "community": 47,
"norm_label": "contractexportbody"
},
{
@@ -10412,7 +10448,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L214",
"id": "crm_contract_contractstatisticsoverviewquery",
- "community": 51,
+ "community": 80,
"norm_label": "contractstatisticsoverviewquery"
},
{
@@ -10421,7 +10457,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L220",
"id": "crm_contract_contractstatisticstrendquery",
- "community": 51,
+ "community": 80,
"norm_label": "contractstatisticstrendquery"
},
{
@@ -10430,7 +10466,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L226",
"id": "crm_contract_contractrenewbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractrenewbody"
},
{
@@ -10448,7 +10484,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L235",
"id": "crm_contract_contractapprovalrejectbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractapprovalrejectbody"
},
{
@@ -10457,7 +10493,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L240",
"id": "crm_contract_contractapprovalrefreshnamesbody",
- "community": 51,
+ "community": 47,
"norm_label": "contractapprovalrefreshnamesbody"
},
{
@@ -10466,7 +10502,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L244",
"id": "crm_contract_contractapprovallistquery",
- "community": 51,
+ "community": 80,
"norm_label": "contractapprovallistquery"
},
{
@@ -10475,7 +10511,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L256",
"id": "crm_contract_contractchangelistquery",
- "community": 51,
+ "community": 80,
"norm_label": "contractchangelistquery"
},
{
@@ -10484,7 +10520,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L268",
"id": "crm_contract_contracttemplatelistquery",
- "community": 51,
+ "community": 80,
"norm_label": "contracttemplatelistquery"
},
{
@@ -10493,7 +10529,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L279",
"id": "crm_contract_contractsignbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractsignbody"
},
{
@@ -10502,7 +10538,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L286",
"id": "crm_contract_contractbatchassignbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractbatchassignbody"
},
{
@@ -10511,7 +10547,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L292",
"id": "crm_contract_contractchangecreatebody",
- "community": 51,
+ "community": 80,
"norm_label": "contractchangecreatebody"
},
{
@@ -10520,7 +10556,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L307",
"id": "crm_contract_contractchangeupdatebody",
- "community": 51,
+ "community": 80,
"norm_label": "contractchangeupdatebody"
},
{
@@ -10538,7 +10574,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L317",
"id": "crm_contract_contractchangeexportbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractchangeexportbody"
},
{
@@ -10547,7 +10583,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L321",
"id": "crm_contract_contracttemplatecreatebody",
- "community": 51,
+ "community": 80,
"norm_label": "contracttemplatecreatebody"
},
{
@@ -10556,7 +10592,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L343",
"id": "crm_contract_contracttemplateupdatebody",
- "community": 51,
+ "community": 80,
"norm_label": "contracttemplateupdatebody"
},
{
@@ -10565,7 +10601,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L347",
"id": "crm_contract_contracttemplateexportbody",
- "community": 51,
+ "community": 80,
"norm_label": "contracttemplateexportbody"
},
{
@@ -10583,7 +10619,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L357",
"id": "crm_contract_contractapprovalexportbody",
- "community": 51,
+ "community": 80,
"norm_label": "contractapprovalexportbody"
},
{
@@ -10592,7 +10628,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L1",
"id": "app_schemas_crm_contract_py_crm_contract_rationale_1",
- "community": 51,
+ "community": 80,
"norm_label": "crm \u5408\u540c pydantic schemas \u2014 \u5bf9\u7167 crmcontractbo / crmcontractvo"
},
{
@@ -10601,7 +10637,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L53",
"id": "crm_contract_rationale_53",
- "community": 51,
+ "community": 47,
"norm_label": "get /contract/list \u67e5\u8be2\u53c2\u6570(\u5bf9\u9f50 crmcontractbo + pagenum/pagesize)"
},
{
@@ -10610,7 +10646,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L185",
"id": "crm_contract_rationale_185",
- "community": 51,
+ "community": 80,
"norm_label": "post /contract/approval \u2014 \u6309\u5408\u540c id \u5ba1\u6279"
},
{
@@ -10619,7 +10655,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L210",
"id": "crm_contract_rationale_210",
- "community": 51,
+ "community": 47,
"norm_label": "post /contract/export \u7b5b\u9009\u6761\u4ef6(\u65e0\u5206\u9875\u6216\u6cbf\u7528 list \u53c2\u6570)"
},
{
@@ -10628,7 +10664,7 @@
"source_file": "app/schemas/crm/contract.py",
"source_location": "L227",
"id": "crm_contract_rationale_227",
- "community": 51,
+ "community": 80,
"norm_label": "\u7eed\u7b7e \u2014 \u5b57\u6bb5\u540c\u521b\u5efa,parent \u7531\u8def\u5f84\u63d0\u4f9b"
},
{
@@ -10637,7 +10673,7 @@
"source_file": "app/schemas/crm/contact.py",
"source_location": "L1",
"id": "app_schemas_crm_contact_py",
- "community": 2,
+ "community": 7,
"norm_label": "contact.py"
},
{
@@ -10682,7 +10718,7 @@
"source_file": "app/schemas/crm/contact.py",
"source_location": "L75",
"id": "crm_contact_contactdetailbody",
- "community": 80,
+ "community": 7,
"norm_label": "contactdetailbody"
},
{
@@ -10691,7 +10727,7 @@
"source_file": "app/schemas/crm/contact.py",
"source_location": "L79",
"id": "crm_contact_contactbycustomerbody",
- "community": 80,
+ "community": 7,
"norm_label": "contactbycustomerbody"
},
{
@@ -10700,7 +10736,7 @@
"source_file": "app/schemas/crm/contact.py",
"source_location": "L85",
"id": "crm_contact_contactsetprimarybody",
- "community": 80,
+ "community": 7,
"norm_label": "contactsetprimarybody"
},
{
@@ -10709,7 +10745,7 @@
"source_file": "app/schemas/crm/contact.py",
"source_location": "L1",
"id": "crm_contact_rationale_1",
- "community": 2,
+ "community": 7,
"norm_label": "crm \u8054\u7cfb\u4eba pydantic schemas"
},
{
@@ -10817,7 +10853,7 @@
"source_file": "app/schemas/db/__init__.py",
"source_location": "L1",
"id": "app_schemas_db_init_py",
- "community": 99,
+ "community": 145,
"norm_label": "__init__.py"
},
{
@@ -10826,7 +10862,7 @@
"source_file": "app/schemas/db/__init__.py",
"source_location": "L1",
"id": "app_schemas_db_init_py_db_init_rationale_1",
- "community": 99,
+ "community": 145,
"norm_label": "\u5730\u78c5(db)pydantic schemas \u2014 \u5bf9\u9f50\u539f simple-dibang-xiaoshou \u5951\u7ea6\u3002"
},
{
@@ -10871,7 +10907,7 @@
"source_file": "app/schemas/db/weighing.py",
"source_location": "L1",
"id": "app_schemas_db_weighing_py",
- "community": 80,
+ "community": 7,
"norm_label": "weighing.py"
},
{
@@ -10880,7 +10916,7 @@
"source_file": "app/schemas/db/weighing.py",
"source_location": "L6",
"id": "db_weighing_weighingslipbase",
- "community": 80,
+ "community": 7,
"norm_label": "weighingslipbase"
},
{
@@ -10889,7 +10925,7 @@
"source_file": "app/schemas/db/weighing.py",
"source_location": "L33",
"id": "db_weighing_weighingslipcreate",
- "community": 80,
+ "community": 7,
"norm_label": "weighingslipcreate"
},
{
@@ -10898,7 +10934,7 @@
"source_file": "app/schemas/db/weighing.py",
"source_location": "L58",
"id": "db_weighing_weighingslipupdate",
- "community": 80,
+ "community": 7,
"norm_label": "weighingslipupdate"
},
{
@@ -10916,7 +10952,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L1",
"id": "app_schemas_db_plans_py",
- "community": 9,
+ "community": 7,
"norm_label": "plans.py"
},
{
@@ -10925,7 +10961,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L6",
"id": "db_plans_purchaseplanbase",
- "community": 9,
+ "community": 7,
"norm_label": "purchaseplanbase"
},
{
@@ -10934,7 +10970,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L34",
"id": "db_plans_purchaseplancreate",
- "community": 9,
+ "community": 7,
"norm_label": "purchaseplancreate"
},
{
@@ -10943,7 +10979,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L54",
"id": "db_plans_purchaseplanupdate",
- "community": 9,
+ "community": 7,
"norm_label": "purchaseplanupdate"
},
{
@@ -10952,7 +10988,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L82",
"id": "db_plans_purchaseplanread",
- "community": 85,
+ "community": 39,
"norm_label": "purchaseplanread"
},
{
@@ -10961,7 +10997,7 @@
"source_file": "app/schemas/db/plans.py",
"source_location": "L88",
"id": "db_plans_purchaseplanwithfilllink",
- "community": 85,
+ "community": 39,
"norm_label": "purchaseplanwithfilllink"
},
{
@@ -10970,7 +11006,7 @@
"source_file": "app/schemas/db/inventory.py",
"source_location": "L1",
"id": "app_schemas_db_inventory_py",
- "community": 80,
+ "community": 7,
"norm_label": "inventory.py"
},
{
@@ -10979,7 +11015,7 @@
"source_file": "app/schemas/db/inventory.py",
"source_location": "L6",
"id": "db_inventory_inboundoutboundbase",
- "community": 80,
+ "community": 7,
"norm_label": "inboundoutboundbase"
},
{
@@ -10988,7 +11024,7 @@
"source_file": "app/schemas/db/inventory.py",
"source_location": "L24",
"id": "db_inventory_inboundoutboundcreate",
- "community": 80,
+ "community": 7,
"norm_label": "inboundoutboundcreate"
},
{
@@ -10997,7 +11033,7 @@
"source_file": "app/schemas/db/inventory.py",
"source_location": "L40",
"id": "db_inventory_inboundoutboundupdate",
- "community": 80,
+ "community": 7,
"norm_label": "inboundoutboundupdate"
},
{
@@ -11006,7 +11042,7 @@
"source_file": "app/schemas/db/inventory.py",
"source_location": "L58",
"id": "db_inventory_createlinkforplanpayload",
- "community": 80,
+ "community": 7,
"norm_label": "createlinkforplanpayload"
},
{
@@ -11231,7 +11267,7 @@
"source_file": "app/crud/post.py",
"source_location": "L1",
"id": "app_crud_post_py",
- "community": 81,
+ "community": 98,
"norm_label": "post.py"
},
{
@@ -11240,7 +11276,7 @@
"source_file": "app/crud/post.py",
"source_location": "L16",
"id": "crud_post_row_to_dict",
- "community": 81,
+ "community": 98,
"norm_label": "_row_to_dict()"
},
{
@@ -11249,7 +11285,7 @@
"source_file": "app/crud/post.py",
"source_location": "L16",
"id": "syspost",
- "community": 81,
+ "community": 98,
"norm_label": "syspost"
},
{
@@ -11258,7 +11294,7 @@
"source_file": "app/crud/post.py",
"source_location": "L16",
"id": "app_crud_post_py_str",
- "community": 81,
+ "community": 98,
"norm_label": "str"
},
{
@@ -11267,7 +11303,7 @@
"source_file": "app/crud/post.py",
"source_location": "L16",
"id": "app_crud_post_py_any",
- "community": 81,
+ "community": 98,
"norm_label": "any"
},
{
@@ -11276,7 +11312,7 @@
"source_file": "app/crud/post.py",
"source_location": "L31",
"id": "crud_post_list_posts",
- "community": 81,
+ "community": 98,
"norm_label": "list_posts()"
},
{
@@ -11285,7 +11321,7 @@
"source_file": "app/crud/post.py",
"source_location": "L31",
"id": "app_crud_post_py_session",
- "community": 81,
+ "community": 98,
"norm_label": "session"
},
{
@@ -11294,7 +11330,7 @@
"source_file": "app/crud/post.py",
"source_location": "L31",
"id": "app_crud_post_py_int",
- "community": 81,
+ "community": 98,
"norm_label": "int"
},
{
@@ -11303,7 +11339,7 @@
"source_file": "app/crud/post.py",
"source_location": "L66",
"id": "crud_post_get_post",
- "community": 81,
+ "community": 98,
"norm_label": "get_post()"
},
{
@@ -11312,7 +11348,7 @@
"source_file": "app/crud/post.py",
"source_location": "L74",
"id": "crud_post_post_code_exists",
- "community": 81,
+ "community": 98,
"norm_label": "post_code_exists()"
},
{
@@ -11321,7 +11357,7 @@
"source_file": "app/crud/post.py",
"source_location": "L74",
"id": "app_crud_post_py_bool",
- "community": 81,
+ "community": 98,
"norm_label": "bool"
},
{
@@ -11330,7 +11366,7 @@
"source_file": "app/crud/post.py",
"source_location": "L81",
"id": "crud_post_create_post",
- "community": 81,
+ "community": 98,
"norm_label": "create_post()"
},
{
@@ -11339,7 +11375,7 @@
"source_file": "app/crud/post.py",
"source_location": "L118",
"id": "crud_post_update_post",
- "community": 81,
+ "community": 98,
"norm_label": "update_post()"
},
{
@@ -11348,7 +11384,7 @@
"source_file": "app/crud/post.py",
"source_location": "L155",
"id": "crud_post_soft_delete_post",
- "community": 81,
+ "community": 98,
"norm_label": "soft_delete_post()"
},
{
@@ -11357,7 +11393,7 @@
"source_file": "app/crud/post.py",
"source_location": "L166",
"id": "crud_post_total_pages",
- "community": 81,
+ "community": 98,
"norm_label": "total_pages()"
},
{
@@ -11366,7 +11402,7 @@
"source_file": "app/crud/user.py",
"source_location": "L1",
"id": "app_crud_user_py",
- "community": 7,
+ "community": 6,
"norm_label": "user.py"
},
{
@@ -11375,7 +11411,7 @@
"source_file": "app/crud/user.py",
"source_location": "L19",
"id": "crud_user_hash_password",
- "community": 7,
+ "community": 6,
"norm_label": "_hash_password()"
},
{
@@ -11384,7 +11420,7 @@
"source_file": "app/crud/user.py",
"source_location": "L19",
"id": "app_crud_user_py_str",
- "community": 7,
+ "community": 6,
"norm_label": "str"
},
{
@@ -11393,7 +11429,7 @@
"source_file": "app/crud/user.py",
"source_location": "L23",
"id": "crud_user_usercrudcompat",
- "community": 7,
+ "community": 6,
"norm_label": "_usercrudcompat"
},
{
@@ -11402,7 +11438,7 @@
"source_file": "app/crud/user.py",
"source_location": "L24",
"id": "crud_user_usercrudcompat_get_by_user_no",
- "community": 7,
+ "community": 6,
"norm_label": ".get_by_user_no()"
},
{
@@ -11411,7 +11447,7 @@
"source_file": "app/crud/user.py",
"source_location": "L24",
"id": "app_crud_user_py_session",
- "community": 7,
+ "community": 6,
"norm_label": "session"
},
{
@@ -11420,7 +11456,7 @@
"source_file": "app/crud/user.py",
"source_location": "L24",
"id": "app_crud_user_py_sysuser",
- "community": 7,
+ "community": 6,
"norm_label": "sysuser"
},
{
@@ -11429,7 +11465,7 @@
"source_file": "app/crud/user.py",
"source_location": "L35",
"id": "crud_user_usercrudcompat_get_by_user_no_for_web_login",
- "community": 7,
+ "community": 6,
"norm_label": ".get_by_user_no_for_web_login()"
},
{
@@ -11438,7 +11474,7 @@
"source_file": "app/crud/user.py",
"source_location": "L54",
"id": "crud_user_row_to_dict",
- "community": 7,
+ "community": 6,
"norm_label": "_row_to_dict()"
},
{
@@ -11447,7 +11483,7 @@
"source_file": "app/crud/user.py",
"source_location": "L54",
"id": "app_crud_user_py_any",
- "community": 7,
+ "community": 6,
"norm_label": "any"
},
{
@@ -11456,7 +11492,7 @@
"source_file": "app/crud/user.py",
"source_location": "L75",
"id": "crud_user_list_users",
- "community": 7,
+ "community": 6,
"norm_label": "list_users()"
},
{
@@ -11465,7 +11501,7 @@
"source_file": "app/crud/user.py",
"source_location": "L75",
"id": "app_crud_user_py_int",
- "community": 7,
+ "community": 6,
"norm_label": "int"
},
{
@@ -11474,7 +11510,7 @@
"source_file": "app/crud/user.py",
"source_location": "L126",
"id": "crud_user_get_user",
- "community": 7,
+ "community": 6,
"norm_label": "get_user()"
},
{
@@ -11483,7 +11519,7 @@
"source_file": "app/crud/user.py",
"source_location": "L134",
"id": "crud_user_list_post_ids_for_user",
- "community": 7,
+ "community": 6,
"norm_label": "list_post_ids_for_user()"
},
{
@@ -11492,7 +11528,7 @@
"source_file": "app/crud/user.py",
"source_location": "L144",
"id": "crud_user_set_user_post_ids_only",
- "community": 7,
+ "community": 6,
"norm_label": "set_user_post_ids_only()"
},
{
@@ -11501,7 +11537,7 @@
"source_file": "app/crud/user.py",
"source_location": "L176",
"id": "crud_user_list_user_ids_bound_to_post",
- "community": 7,
+ "community": 6,
"norm_label": "list_user_ids_bound_to_post()"
},
{
@@ -11510,7 +11546,7 @@
"source_file": "app/crud/user.py",
"source_location": "L191",
"id": "crud_user_sync_post_user_bindings",
- "community": 7,
+ "community": 6,
"norm_label": "sync_post_user_bindings()"
},
{
@@ -11519,7 +11555,7 @@
"source_file": "app/crud/user.py",
"source_location": "L219",
"id": "crud_user_get_user_with_relations",
- "community": 7,
+ "community": 6,
"norm_label": "get_user_with_relations()"
},
{
@@ -11528,7 +11564,7 @@
"source_file": "app/crud/user.py",
"source_location": "L244",
"id": "crud_user_user_no_exists",
- "community": 7,
+ "community": 6,
"norm_label": "user_no_exists()"
},
{
@@ -11537,7 +11573,7 @@
"source_file": "app/crud/user.py",
"source_location": "L244",
"id": "app_crud_user_py_bool",
- "community": 7,
+ "community": 6,
"norm_label": "bool"
},
{
@@ -11546,7 +11582,7 @@
"source_file": "app/crud/user.py",
"source_location": "L253",
"id": "crud_user_replace_associations",
- "community": 7,
+ "community": 6,
"norm_label": "_replace_associations()"
},
{
@@ -11555,7 +11591,7 @@
"source_file": "app/crud/user.py",
"source_location": "L304",
"id": "crud_user_create_user",
- "community": 7,
+ "community": 6,
"norm_label": "create_user()"
},
{
@@ -11564,7 +11600,7 @@
"source_file": "app/crud/user.py",
"source_location": "L363",
"id": "crud_user_update_user",
- "community": 7,
+ "community": 6,
"norm_label": "update_user()"
},
{
@@ -11573,7 +11609,7 @@
"source_file": "app/crud/user.py",
"source_location": "L418",
"id": "crud_user_soft_delete_user",
- "community": 7,
+ "community": 6,
"norm_label": "soft_delete_user()"
},
{
@@ -11582,7 +11618,7 @@
"source_file": "app/crud/user.py",
"source_location": "L429",
"id": "crud_user_reset_password",
- "community": 7,
+ "community": 6,
"norm_label": "reset_password()"
},
{
@@ -11591,7 +11627,7 @@
"source_file": "app/crud/user.py",
"source_location": "L439",
"id": "crud_user_total_pages",
- "community": 7,
+ "community": 6,
"norm_label": "total_pages()"
},
{
@@ -11600,7 +11636,7 @@
"source_file": "app/crud/user.py",
"source_location": "L1",
"id": "crud_user_rationale_1",
- "community": 7,
+ "community": 6,
"norm_label": "\u7528\u6237 crud(sys_user + sys_user_role + sys_user_post)"
},
{
@@ -11609,7 +11645,7 @@
"source_file": "app/crud/user.py",
"source_location": "L36",
"id": "crud_user_rationale_36",
- "community": 7,
+ "community": 6,
"norm_label": "web \u767b\u5f55:\u4f18\u5148 default_tenant_no;\u672a\u547d\u4e2d\u65f6\u6309 user_no \u56de\u9000(\u517c\u5bb9\u672a\u6267\u884c\u79df\u6237\u8fc1\u79fb\u7684\u5e93)\u3002"
},
{
@@ -11618,7 +11654,7 @@
"source_file": "app/crud/user.py",
"source_location": "L151",
"id": "crud_user_rationale_151",
- "community": 7,
+ "community": 6,
"norm_label": "\u4ec5\u66ff\u6362 sys_user_post,\u4e0d\u5f71\u54cd sys_user_role\u3002"
},
{
@@ -11627,7 +11663,7 @@
"source_file": "app/crud/user.py",
"source_location": "L198",
"id": "crud_user_rationale_198",
- "community": 7,
+ "community": 6,
"norm_label": "\u5c06\u672c\u804c\u4f4d\u7ed1\u5b9a\u7684\u7528\u6237\u96c6\u5408\u8bbe\u4e3a user_ids(\u53ea\u589e\u5220\u672c\u804c\u4f4d,\u4fdd\u7559\u7528\u6237\u5176\u5b83\u804c\u4f4d\u4e0e\u89d2\u8272)\u3002"
},
{
@@ -11636,7 +11672,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L1",
"id": "app_crud_dict_type_py",
- "community": 66,
+ "community": 92,
"norm_label": "dict_type.py"
},
{
@@ -11645,7 +11681,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L16",
"id": "crud_dict_type_row_to_dict",
- "community": 66,
+ "community": 92,
"norm_label": "_row_to_dict()"
},
{
@@ -11654,7 +11690,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L16",
"id": "sysdicttype",
- "community": 66,
+ "community": 92,
"norm_label": "sysdicttype"
},
{
@@ -11663,7 +11699,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L16",
"id": "app_crud_dict_type_py_str",
- "community": 66,
+ "community": 92,
"norm_label": "str"
},
{
@@ -11672,7 +11708,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L16",
"id": "app_crud_dict_type_py_any",
- "community": 66,
+ "community": 92,
"norm_label": "any"
},
{
@@ -11681,7 +11717,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L30",
"id": "crud_dict_type_list_dict_types",
- "community": 66,
+ "community": 92,
"norm_label": "list_dict_types()"
},
{
@@ -11690,7 +11726,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L30",
"id": "app_crud_dict_type_py_session",
- "community": 66,
+ "community": 92,
"norm_label": "session"
},
{
@@ -11699,7 +11735,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L30",
"id": "app_crud_dict_type_py_int",
- "community": 66,
+ "community": 92,
"norm_label": "int"
},
{
@@ -11708,7 +11744,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L65",
"id": "crud_dict_type_get_dict_type",
- "community": 66,
+ "community": 92,
"norm_label": "get_dict_type()"
},
{
@@ -11717,7 +11753,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L73",
"id": "crud_dict_type_dict_type_code_exists",
- "community": 66,
+ "community": 92,
"norm_label": "dict_type_code_exists()"
},
{
@@ -11726,7 +11762,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L73",
"id": "app_crud_dict_type_py_bool",
- "community": 66,
+ "community": 92,
"norm_label": "bool"
},
{
@@ -11735,7 +11771,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L84",
"id": "crud_dict_type_create_dict_type",
- "community": 66,
+ "community": 92,
"norm_label": "create_dict_type()"
},
{
@@ -11744,7 +11780,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L119",
"id": "crud_dict_type_update_dict_type",
- "community": 66,
+ "community": 92,
"norm_label": "update_dict_type()"
},
{
@@ -11753,7 +11789,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L155",
"id": "crud_dict_type_soft_delete_dict_type",
- "community": 66,
+ "community": 92,
"norm_label": "soft_delete_dict_type()"
},
{
@@ -11762,7 +11798,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L169",
"id": "crud_dict_type_total_pages",
- "community": 66,
+ "community": 92,
"norm_label": "total_pages()"
},
{
@@ -11771,7 +11807,7 @@
"source_file": "app/crud/dict_type.py",
"source_location": "L1",
"id": "crud_dict_type_rationale_1",
- "community": 66,
+ "community": 92,
"norm_label": "\u5b57\u5178\u7c7b\u578b crud(sys_dict_type)"
},
{
@@ -11780,7 +11816,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L1",
"id": "app_crud_tenant_py",
- "community": 107,
+ "community": 96,
"norm_label": "tenant.py"
},
{
@@ -11789,7 +11825,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L17",
"id": "crud_tenant_row_to_dict",
- "community": 107,
+ "community": 96,
"norm_label": "_row_to_dict()"
},
{
@@ -11798,7 +11834,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L17",
"id": "systenant",
- "community": 107,
+ "community": 96,
"norm_label": "systenant"
},
{
@@ -11807,7 +11843,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L17",
"id": "app_crud_tenant_py_str",
- "community": 107,
+ "community": 96,
"norm_label": "str"
},
{
@@ -11816,7 +11852,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L17",
"id": "app_crud_tenant_py_any",
- "community": 107,
+ "community": 96,
"norm_label": "any"
},
{
@@ -11825,7 +11861,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L32",
"id": "crud_tenant_list_tenants",
- "community": 107,
+ "community": 96,
"norm_label": "list_tenants()"
},
{
@@ -11834,7 +11870,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L32",
"id": "app_crud_tenant_py_session",
- "community": 107,
+ "community": 96,
"norm_label": "session"
},
{
@@ -11843,7 +11879,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L32",
"id": "app_crud_tenant_py_int",
- "community": 107,
+ "community": 96,
"norm_label": "int"
},
{
@@ -11852,7 +11888,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L64",
"id": "crud_tenant_get_tenant",
- "community": 107,
+ "community": 96,
"norm_label": "get_tenant()"
},
{
@@ -11861,7 +11897,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L72",
"id": "crud_tenant_tenant_no_exists",
- "community": 107,
+ "community": 96,
"norm_label": "tenant_no_exists()"
},
{
@@ -11870,7 +11906,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L72",
"id": "app_crud_tenant_py_bool",
- "community": 107,
+ "community": 96,
"norm_label": "bool"
},
{
@@ -11879,7 +11915,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L79",
"id": "crud_tenant_create_tenant",
- "community": 107,
+ "community": 96,
"norm_label": "create_tenant()"
},
{
@@ -11888,7 +11924,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L116",
"id": "crud_tenant_update_tenant",
- "community": 107,
+ "community": 96,
"norm_label": "update_tenant()"
},
{
@@ -11897,7 +11933,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L158",
"id": "crud_tenant_soft_delete_tenant",
- "community": 107,
+ "community": 96,
"norm_label": "soft_delete_tenant()"
},
{
@@ -11906,7 +11942,7 @@
"source_file": "app/crud/tenant.py",
"source_location": "L171",
"id": "crud_tenant_total_pages",
- "community": 107,
+ "community": 96,
"norm_label": "total_pages()"
},
{
@@ -12014,7 +12050,7 @@
"source_file": "app/crud/__init__.py",
"source_location": "L1",
"id": "app_crud_init_py",
- "community": 90,
+ "community": 125,
"norm_label": "__init__.py"
},
{
@@ -12203,7 +12239,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L1",
"id": "app_crud_menu_py",
- "community": 38,
+ "community": 147,
"norm_label": "menu.py"
},
{
@@ -12212,7 +12248,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L14",
"id": "crud_menu_row_to_dict",
- "community": 38,
+ "community": 147,
"norm_label": "_row_to_dict()"
},
{
@@ -12221,7 +12257,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L14",
"id": "sysmenu",
- "community": 38,
+ "community": 147,
"norm_label": "sysmenu"
},
{
@@ -12230,7 +12266,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L14",
"id": "app_crud_menu_py_str",
- "community": 38,
+ "community": 147,
"norm_label": "str"
},
{
@@ -12239,7 +12275,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L14",
"id": "app_crud_menu_py_any",
- "community": 38,
+ "community": 147,
"norm_label": "any"
},
{
@@ -12248,7 +12284,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L35",
"id": "crud_menu_build_tree",
- "community": 38,
+ "community": 147,
"norm_label": "_build_tree()"
},
{
@@ -12257,7 +12293,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L43",
"id": "crud_menu_list_menus",
- "community": 38,
+ "community": 147,
"norm_label": "list_menus()"
},
{
@@ -12266,7 +12302,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L43",
"id": "app_crud_menu_py_session",
- "community": 38,
+ "community": 147,
"norm_label": "session"
},
{
@@ -12275,7 +12311,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L64",
"id": "crud_menu_list_menus_tree",
- "community": 38,
+ "community": 147,
"norm_label": "list_menus_tree()"
},
{
@@ -12284,7 +12320,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L103",
"id": "crud_menu_get_menu",
- "community": 38,
+ "community": 147,
"norm_label": "get_menu()"
},
{
@@ -12293,7 +12329,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L111",
"id": "crud_menu_menu_name_exists",
- "community": 38,
+ "community": 147,
"norm_label": "menu_name_exists()"
},
{
@@ -12302,7 +12338,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L111",
"id": "app_crud_menu_py_bool",
- "community": 38,
+ "community": 147,
"norm_label": "bool"
},
{
@@ -12311,7 +12347,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L125",
"id": "crud_menu_create_menu",
- "community": 38,
+ "community": 147,
"norm_label": "create_menu()"
},
{
@@ -12320,7 +12356,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L125",
"id": "app_crud_menu_py_int",
- "community": 38,
+ "community": 147,
"norm_label": "int"
},
{
@@ -12329,7 +12365,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L172",
"id": "crud_menu_update_menu",
- "community": 38,
+ "community": 147,
"norm_label": "update_menu()"
},
{
@@ -12338,7 +12374,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L222",
"id": "crud_menu_cascade_soft_delete",
- "community": 38,
+ "community": 147,
"norm_label": "_cascade_soft_delete()"
},
{
@@ -12347,7 +12383,7 @@
"source_file": "app/crud/menu.py",
"source_location": "L235",
"id": "crud_menu_soft_delete_menu",
- "community": 38,
+ "community": 147,
"norm_label": "soft_delete_menu()"
},
{
@@ -12356,7 +12392,7 @@
"source_file": "app/crud/site.py",
"source_location": "L1",
"id": "app_crud_site_py",
- "community": 96,
+ "community": 105,
"norm_label": "site.py"
},
{
@@ -12365,7 +12401,7 @@
"source_file": "app/crud/site.py",
"source_location": "L16",
"id": "crud_site_row_to_dict",
- "community": 96,
+ "community": 105,
"norm_label": "_row_to_dict()"
},
{
@@ -12374,7 +12410,7 @@
"source_file": "app/crud/site.py",
"source_location": "L16",
"id": "syssite",
- "community": 96,
+ "community": 105,
"norm_label": "syssite"
},
{
@@ -12383,7 +12419,7 @@
"source_file": "app/crud/site.py",
"source_location": "L16",
"id": "app_crud_site_py_str",
- "community": 96,
+ "community": 105,
"norm_label": "str"
},
{
@@ -12392,7 +12428,7 @@
"source_file": "app/crud/site.py",
"source_location": "L16",
"id": "app_crud_site_py_any",
- "community": 96,
+ "community": 105,
"norm_label": "any"
},
{
@@ -12401,7 +12437,7 @@
"source_file": "app/crud/site.py",
"source_location": "L36",
"id": "crud_site_list_sites",
- "community": 96,
+ "community": 105,
"norm_label": "list_sites()"
},
{
@@ -12410,7 +12446,7 @@
"source_file": "app/crud/site.py",
"source_location": "L36",
"id": "app_crud_site_py_session",
- "community": 96,
+ "community": 105,
"norm_label": "session"
},
{
@@ -12419,7 +12455,7 @@
"source_file": "app/crud/site.py",
"source_location": "L36",
"id": "app_crud_site_py_int",
- "community": 96,
+ "community": 105,
"norm_label": "int"
},
{
@@ -12428,7 +12464,7 @@
"source_file": "app/crud/site.py",
"source_location": "L71",
"id": "crud_site_get_site",
- "community": 96,
+ "community": 105,
"norm_label": "get_site()"
},
{
@@ -12437,7 +12473,7 @@
"source_file": "app/crud/site.py",
"source_location": "L79",
"id": "crud_site_site_code_exists",
- "community": 96,
+ "community": 105,
"norm_label": "site_code_exists()"
},
{
@@ -12446,7 +12482,7 @@
"source_file": "app/crud/site.py",
"source_location": "L79",
"id": "app_crud_site_py_bool",
- "community": 96,
+ "community": 105,
"norm_label": "bool"
},
{
@@ -12455,7 +12491,7 @@
"source_file": "app/crud/site.py",
"source_location": "L86",
"id": "crud_site_create_site",
- "community": 96,
+ "community": 105,
"norm_label": "create_site()"
},
{
@@ -12464,7 +12500,7 @@
"source_file": "app/crud/site.py",
"source_location": "L133",
"id": "crud_site_update_site",
- "community": 96,
+ "community": 105,
"norm_label": "update_site()"
},
{
@@ -12473,7 +12509,7 @@
"source_file": "app/crud/site.py",
"source_location": "L185",
"id": "crud_site_soft_delete_site",
- "community": 96,
+ "community": 105,
"norm_label": "soft_delete_site()"
},
{
@@ -12482,7 +12518,7 @@
"source_file": "app/crud/site.py",
"source_location": "L196",
"id": "crud_site_total_pages",
- "community": 96,
+ "community": 105,
"norm_label": "total_pages()"
},
{
@@ -12491,7 +12527,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L1",
"id": "app_crud_api_request_log_py",
- "community": 90,
+ "community": 108,
"norm_label": "api_request_log.py"
},
{
@@ -12500,7 +12536,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L12",
"id": "crud_api_request_log_apirequestlogcrud",
- "community": 90,
+ "community": 108,
"norm_label": "apirequestlogcrud"
},
{
@@ -12509,7 +12545,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L14",
"id": "crud_api_request_log_apirequestlogcrud_get_multi_with_filters",
- "community": 90,
+ "community": 108,
"norm_label": ".get_multi_with_filters()"
},
{
@@ -12518,7 +12554,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L14",
"id": "app_crud_api_request_log_py_session",
- "community": 90,
+ "community": 108,
"norm_label": "session"
},
{
@@ -12527,7 +12563,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L14",
"id": "app_crud_api_request_log_py_str",
- "community": 90,
+ "community": 108,
"norm_label": "str"
},
{
@@ -12536,7 +12572,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L14",
"id": "app_crud_api_request_log_py_int",
- "community": 90,
+ "community": 108,
"norm_label": "int"
},
{
@@ -12545,7 +12581,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L14",
"id": "sysapirequestlog",
- "community": 90,
+ "community": 108,
"norm_label": "sysapirequestlog"
},
{
@@ -12554,7 +12590,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L85",
"id": "crud_api_request_log_apirequestlogcrud_get",
- "community": 90,
+ "community": 108,
"norm_label": ".get()"
},
{
@@ -12563,7 +12599,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L91",
"id": "crud_api_request_log_apirequestlogcrud_delete",
- "community": 90,
+ "community": 108,
"norm_label": ".delete()"
},
{
@@ -12572,7 +12608,7 @@
"source_file": "app/crud/api_request_log.py",
"source_location": "L91",
"id": "app_crud_api_request_log_py_bool",
- "community": 90,
+ "community": 108,
"norm_label": "bool"
},
{
@@ -12581,7 +12617,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L1",
"id": "app_crud_oss_py",
- "community": 55,
+ "community": 122,
"norm_label": "oss.py"
},
{
@@ -12590,7 +12626,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L12",
"id": "crud_oss_create_oss",
- "community": 55,
+ "community": 122,
"norm_label": "create_oss()"
},
{
@@ -12599,7 +12635,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L12",
"id": "app_crud_oss_py_session",
- "community": 55,
+ "community": 122,
"norm_label": "session"
},
{
@@ -12608,7 +12644,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L12",
"id": "app_crud_oss_py_str",
- "community": 55,
+ "community": 122,
"norm_label": "str"
},
{
@@ -12617,7 +12653,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L12",
"id": "app_crud_oss_py_int",
- "community": 55,
+ "community": 122,
"norm_label": "int"
},
{
@@ -12626,7 +12662,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L12",
"id": "app_crud_oss_py_sysoss",
- "community": 55,
+ "community": 122,
"norm_label": "sysoss"
},
{
@@ -12635,7 +12671,7 @@
"source_file": "app/crud/oss.py",
"source_location": "L55",
"id": "crud_oss_get_oss_by_url",
- "community": 55,
+ "community": 122,
"norm_label": "get_oss_by_url()"
},
{
@@ -12779,7 +12815,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L1",
"id": "app_crud_ethnic_py",
- "community": 97,
+ "community": 65,
"norm_label": "ethnic.py"
},
{
@@ -12788,7 +12824,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L9",
"id": "crud_ethnic_row_to_dict",
- "community": 97,
+ "community": 65,
"norm_label": "_row_to_dict()"
},
{
@@ -12797,7 +12833,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L9",
"id": "sysethnic",
- "community": 97,
+ "community": 65,
"norm_label": "sysethnic"
},
{
@@ -12806,7 +12842,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L9",
"id": "app_crud_ethnic_py_str",
- "community": 97,
+ "community": 65,
"norm_label": "str"
},
{
@@ -12815,7 +12851,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L9",
"id": "app_crud_ethnic_py_any",
- "community": 97,
+ "community": 65,
"norm_label": "any"
},
{
@@ -12824,7 +12860,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L18",
"id": "crud_ethnic_list_ethnics",
- "community": 97,
+ "community": 65,
"norm_label": "list_ethnics()"
},
{
@@ -12833,7 +12869,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L18",
"id": "app_crud_ethnic_py_session",
- "community": 97,
+ "community": 65,
"norm_label": "session"
},
{
@@ -12842,7 +12878,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L18",
"id": "app_crud_ethnic_py_int",
- "community": 97,
+ "community": 65,
"norm_label": "int"
},
{
@@ -12851,7 +12887,7 @@
"source_file": "app/crud/ethnic.py",
"source_location": "L1",
"id": "crud_ethnic_rationale_1",
- "community": 97,
+ "community": 65,
"norm_label": "\u6c11\u65cf\u7801\u8868 crud(\u5168\u5c40 sys_ethnic)"
},
{
@@ -12860,7 +12896,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L1",
"id": "app_crud_workflow_py",
- "community": 25,
+ "community": 22,
"norm_label": "workflow.py"
},
{
@@ -12869,7 +12905,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L30",
"id": "crud_workflow_row_to_dict",
- "community": 25,
+ "community": 22,
"norm_label": "_row_to_dict()"
},
{
@@ -12878,7 +12914,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L30",
"id": "wfprocessdef",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessdef"
},
{
@@ -12887,7 +12923,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L30",
"id": "app_crud_workflow_py_str",
- "community": 25,
+ "community": 22,
"norm_label": "str"
},
{
@@ -12896,7 +12932,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L30",
"id": "app_crud_workflow_py_any",
- "community": 25,
+ "community": 22,
"norm_label": "any"
},
{
@@ -12905,7 +12941,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L45",
"id": "crud_workflow_list_process_defs",
- "community": 25,
+ "community": 22,
"norm_label": "list_process_defs()"
},
{
@@ -12914,7 +12950,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L45",
"id": "app_crud_workflow_py_session",
- "community": 25,
+ "community": 22,
"norm_label": "session"
},
{
@@ -12923,7 +12959,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L45",
"id": "app_crud_workflow_py_int",
- "community": 25,
+ "community": 22,
"norm_label": "int"
},
{
@@ -12932,7 +12968,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L101",
"id": "crud_workflow_get_process_def",
- "community": 25,
+ "community": 22,
"norm_label": "get_process_def()"
},
{
@@ -12941,7 +12977,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L109",
"id": "crud_workflow_process_code_exists",
- "community": 25,
+ "community": 22,
"norm_label": "process_code_exists()"
},
{
@@ -12950,7 +12986,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L109",
"id": "app_crud_workflow_py_bool",
- "community": 22,
+ "community": 9,
"norm_label": "bool"
},
{
@@ -12959,7 +12995,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L120",
"id": "crud_workflow_create_process_def",
- "community": 25,
+ "community": 22,
"norm_label": "create_process_def()"
},
{
@@ -12968,7 +13004,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L157",
"id": "crud_workflow_update_process_def",
- "community": 25,
+ "community": 22,
"norm_label": "update_process_def()"
},
{
@@ -12977,7 +13013,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L196",
"id": "crud_workflow_soft_delete_process_def",
- "community": 25,
+ "community": 22,
"norm_label": "soft_delete_process_def()"
},
{
@@ -12986,7 +13022,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L212",
"id": "crud_workflow_publish_version",
- "community": 22,
+ "community": 9,
"norm_label": "publish_version()"
},
{
@@ -12995,7 +13031,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L212",
"id": "wfprocessversion",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessversion"
},
{
@@ -13004,7 +13040,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L304",
"id": "crud_workflow_get_latest_version",
- "community": 25,
+ "community": 22,
"norm_label": "get_latest_version()"
},
{
@@ -13013,7 +13049,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L318",
"id": "crud_workflow_version_to_dict",
- "community": 25,
+ "community": 22,
"norm_label": "_version_to_dict()"
},
{
@@ -13022,7 +13058,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L329",
"id": "crud_workflow_list_versions",
- "community": 25,
+ "community": 22,
"norm_label": "list_versions()"
},
{
@@ -13031,7 +13067,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L344",
"id": "crud_workflow_get_nodes_by_version",
- "community": 25,
+ "community": 22,
"norm_label": "get_nodes_by_version()"
},
{
@@ -13040,7 +13076,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L344",
"id": "app_crud_workflow_py_wfnode",
- "community": 22,
+ "community": 9,
"norm_label": "wfnode"
},
{
@@ -13049,7 +13085,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L353",
"id": "crud_workflow_get_transitions_by_version",
- "community": 25,
+ "community": 22,
"norm_label": "get_transitions_by_version()"
},
{
@@ -13058,7 +13094,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L353",
"id": "app_crud_workflow_py_wftransition",
- "community": 22,
+ "community": 9,
"norm_label": "wftransition"
},
{
@@ -13067,7 +13103,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L367",
"id": "crud_workflow_create_instance",
- "community": 25,
+ "community": 22,
"norm_label": "create_instance()"
},
{
@@ -13076,7 +13112,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L367",
"id": "app_crud_workflow_py_wfprocessinstance",
- "community": 22,
+ "community": 9,
"norm_label": "wfprocessinstance"
},
{
@@ -13085,7 +13121,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L405",
"id": "crud_workflow_get_instance",
- "community": 25,
+ "community": 22,
"norm_label": "get_instance()"
},
{
@@ -13094,7 +13130,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L413",
"id": "crud_workflow_update_instance_status",
- "community": 25,
+ "community": 22,
"norm_label": "update_instance_status()"
},
{
@@ -13103,7 +13139,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L423",
"id": "crud_workflow_list_my_instances",
- "community": 25,
+ "community": 22,
"norm_label": "list_my_instances()"
},
{
@@ -13112,7 +13148,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L511",
"id": "crud_workflow_get_all_tasks_for_business",
- "community": 25,
+ "community": 22,
"norm_label": "get_all_tasks_for_business()"
},
{
@@ -13121,7 +13157,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L572",
"id": "crud_workflow_create_task",
- "community": 25,
+ "community": 22,
"norm_label": "create_task()"
},
{
@@ -13130,7 +13166,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L572",
"id": "wftask",
- "community": 22,
+ "community": 9,
"norm_label": "wftask"
},
{
@@ -13139,7 +13175,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L603",
"id": "crud_workflow_get_task",
- "community": 25,
+ "community": 22,
"norm_label": "get_task()"
},
{
@@ -13148,7 +13184,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L611",
"id": "crud_workflow_get_pending_tasks_by_node",
- "community": 25,
+ "community": 22,
"norm_label": "get_pending_tasks_by_node()"
},
{
@@ -13157,7 +13193,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L626",
"id": "crud_workflow_task_row_to_dict",
- "community": 25,
+ "community": 22,
"norm_label": "_task_row_to_dict()"
},
{
@@ -13166,7 +13202,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L653",
"id": "crud_workflow_list_pending_tasks",
- "community": 25,
+ "community": 22,
"norm_label": "list_pending_tasks()"
},
{
@@ -13175,7 +13211,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L716",
"id": "crud_workflow_list_completed_tasks",
- "community": 25,
+ "community": 22,
"norm_label": "list_completed_tasks()"
},
{
@@ -13184,7 +13220,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L779",
"id": "crud_workflow_total_pages",
- "community": 25,
+ "community": 22,
"norm_label": "total_pages()"
},
{
@@ -13193,7 +13229,7 @@
"source_file": "app/crud/workflow.py",
"source_location": "L1",
"id": "crud_workflow_rationale_1",
- "community": 25,
+ "community": 22,
"norm_label": "\u5de5\u4f5c\u6d41 crud(wf_process_def / wf_process_version / wf_node / wf_transition / wf_proc"
},
{
@@ -13202,7 +13238,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L1",
"id": "app_crud_dept_py",
- "community": 106,
+ "community": 60,
"norm_label": "dept.py"
},
{
@@ -13211,7 +13247,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L14",
"id": "crud_dept_row_to_dict",
- "community": 106,
+ "community": 60,
"norm_label": "_row_to_dict()"
},
{
@@ -13220,7 +13256,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L14",
"id": "sysdept",
- "community": 106,
+ "community": 60,
"norm_label": "sysdept"
},
{
@@ -13229,7 +13265,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L14",
"id": "app_crud_dept_py_str",
- "community": 106,
+ "community": 60,
"norm_label": "str"
},
{
@@ -13238,7 +13274,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L14",
"id": "app_crud_dept_py_any",
- "community": 106,
+ "community": 60,
"norm_label": "any"
},
{
@@ -13247,7 +13283,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L32",
"id": "crud_dept_build_tree",
- "community": 106,
+ "community": 60,
"norm_label": "_build_tree()"
},
{
@@ -13256,7 +13292,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L40",
"id": "crud_dept_collect_with_ancestors",
- "community": 106,
+ "community": 60,
"norm_label": "_collect_with_ancestors()"
},
{
@@ -13265,7 +13301,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L56",
"id": "crud_dept_list_depts",
- "community": 106,
+ "community": 60,
"norm_label": "list_depts()"
},
{
@@ -13274,7 +13310,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L56",
"id": "app_crud_dept_py_session",
- "community": 106,
+ "community": 60,
"norm_label": "session"
},
{
@@ -13283,7 +13319,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L77",
"id": "crud_dept_list_depts_tree",
- "community": 106,
+ "community": 60,
"norm_label": "list_depts_tree()"
},
{
@@ -13292,7 +13328,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L99",
"id": "crud_dept_get_dept",
- "community": 106,
+ "community": 60,
"norm_label": "get_dept()"
},
{
@@ -13301,7 +13337,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L107",
"id": "crud_dept_create_dept",
- "community": 106,
+ "community": 60,
"norm_label": "create_dept()"
},
{
@@ -13310,7 +13346,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L107",
"id": "app_crud_dept_py_int",
- "community": 106,
+ "community": 60,
"norm_label": "int"
},
{
@@ -13319,7 +13355,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L148",
"id": "crud_dept_update_dept",
- "community": 106,
+ "community": 60,
"norm_label": "update_dept()"
},
{
@@ -13328,7 +13364,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L186",
"id": "crud_dept_cascade_soft_delete",
- "community": 106,
+ "community": 60,
"norm_label": "_cascade_soft_delete()"
},
{
@@ -13337,7 +13373,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L199",
"id": "crud_dept_soft_delete_dept",
- "community": 106,
+ "community": 60,
"norm_label": "soft_delete_dept()"
},
{
@@ -13346,7 +13382,7 @@
"source_file": "app/crud/dept.py",
"source_location": "L43",
"id": "crud_dept_rationale_43",
- "community": 106,
+ "community": 60,
"norm_label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7,\u4f9b\u5173\u952e\u8bcd\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002"
},
{
@@ -13355,7 +13391,7 @@
"source_file": "app/crud/base.py",
"source_location": "L1",
"id": "app_crud_base_py",
- "community": 90,
+ "community": 125,
"norm_label": "base.py"
},
{
@@ -13364,7 +13400,7 @@
"source_file": "app/crud/base.py",
"source_location": "L14",
"id": "crud_base_camel_to_snake",
- "community": 90,
+ "community": 125,
"norm_label": "camel_to_snake()"
},
{
@@ -13373,7 +13409,7 @@
"source_file": "app/crud/base.py",
"source_location": "L14",
"id": "app_crud_base_py_str",
- "community": 90,
+ "community": 125,
"norm_label": "str"
},
{
@@ -13382,7 +13418,7 @@
"source_file": "app/crud/base.py",
"source_location": "L20",
"id": "crud_base_get_model_attr",
- "community": 90,
+ "community": 125,
"norm_label": "get_model_attr()"
},
{
@@ -13391,7 +13427,7 @@
"source_file": "app/crud/base.py",
"source_location": "L33",
"id": "crud_base_crudbase",
- "community": 90,
+ "community": 125,
"norm_label": "crudbase"
},
{
@@ -13400,7 +13436,7 @@
"source_file": "app/crud/base.py",
"source_location": "L36",
"id": "crud_base_crudbase_init",
- "community": 90,
+ "community": 125,
"norm_label": ".__init__()"
},
{
@@ -13409,7 +13445,7 @@
"source_file": "app/crud/base.py",
"source_location": "L36",
"id": "modeltype",
- "community": 90,
+ "community": 125,
"norm_label": "modeltype"
},
{
@@ -13418,7 +13454,7 @@
"source_file": "app/crud/base.py",
"source_location": "L39",
"id": "crud_base_crudbase_get",
- "community": 90,
+ "community": 125,
"norm_label": ".get()"
},
{
@@ -13427,7 +13463,7 @@
"source_file": "app/crud/base.py",
"source_location": "L39",
"id": "app_crud_base_py_session",
- "community": 90,
+ "community": 125,
"norm_label": "session"
},
{
@@ -13436,7 +13472,7 @@
"source_file": "app/crud/base.py",
"source_location": "L43",
"id": "crud_base_crudbase_get_multi",
- "community": 90,
+ "community": 125,
"norm_label": ".get_multi()"
},
{
@@ -13445,7 +13481,7 @@
"source_file": "app/crud/base.py",
"source_location": "L43",
"id": "app_crud_base_py_int",
- "community": 90,
+ "community": 125,
"norm_label": "int"
},
{
@@ -13454,7 +13490,7 @@
"source_file": "app/crud/base.py",
"source_location": "L43",
"id": "app_crud_base_py_any",
- "community": 90,
+ "community": 125,
"norm_label": "any"
},
{
@@ -13463,7 +13499,7 @@
"source_file": "app/crud/base.py",
"source_location": "L67",
"id": "crud_base_crudbase_get_all",
- "community": 90,
+ "community": 125,
"norm_label": ".get_all()"
},
{
@@ -13472,7 +13508,7 @@
"source_file": "app/crud/base.py",
"source_location": "L74",
"id": "crud_base_crudbase_create",
- "community": 90,
+ "community": 125,
"norm_label": ".create()"
},
{
@@ -13481,7 +13517,7 @@
"source_file": "app/crud/base.py",
"source_location": "L95",
"id": "crud_base_crudbase_update",
- "community": 90,
+ "community": 125,
"norm_label": ".update()"
},
{
@@ -13490,7 +13526,7 @@
"source_file": "app/crud/base.py",
"source_location": "L114",
"id": "crud_base_crudbase_delete",
- "community": 90,
+ "community": 125,
"norm_label": ".delete()"
},
{
@@ -13499,7 +13535,7 @@
"source_file": "app/crud/base.py",
"source_location": "L114",
"id": "app_crud_base_py_bool",
- "community": 90,
+ "community": 125,
"norm_label": "bool"
},
{
@@ -13508,7 +13544,7 @@
"source_file": "app/crud/base.py",
"source_location": "L126",
"id": "crud_base_crudbase_hard_delete",
- "community": 90,
+ "community": 125,
"norm_label": ".hard_delete()"
},
{
@@ -13517,7 +13553,7 @@
"source_file": "app/crud/base.py",
"source_location": "L135",
"id": "crud_base_crudbase_count",
- "community": 90,
+ "community": 125,
"norm_label": ".count()"
},
{
@@ -13526,7 +13562,7 @@
"source_file": "app/crud/base.py",
"source_location": "L142",
"id": "crud_base_crudbase_exists",
- "community": 90,
+ "community": 125,
"norm_label": ".exists()"
},
{
@@ -13535,7 +13571,7 @@
"source_file": "app/crud/base.py",
"source_location": "L150",
"id": "crud_base_historycrud",
- "community": 90,
+ "community": 125,
"norm_label": "historycrud"
},
{
@@ -13544,7 +13580,7 @@
"source_file": "app/crud/base.py",
"source_location": "L153",
"id": "crud_base_historycrud_create_history",
- "community": 90,
+ "community": 125,
"norm_label": ".create_history()"
},
{
@@ -13553,7 +13589,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L1",
"id": "app_crud_leave_py",
- "community": 88,
+ "community": 95,
"norm_label": "leave.py"
},
{
@@ -13562,7 +13598,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L15",
"id": "crud_leave_total_pages",
- "community": 88,
+ "community": 95,
"norm_label": "total_pages()"
},
{
@@ -13571,7 +13607,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L15",
"id": "app_crud_leave_py_int",
- "community": 88,
+ "community": 95,
"norm_label": "int"
},
{
@@ -13580,7 +13616,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L19",
"id": "crud_leave_row_to_dict",
- "community": 88,
+ "community": 95,
"norm_label": "_row_to_dict()"
},
{
@@ -13589,7 +13625,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L19",
"id": "bizleaverequest",
- "community": 88,
+ "community": 95,
"norm_label": "bizleaverequest"
},
{
@@ -13598,7 +13634,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L19",
"id": "app_crud_leave_py_str",
- "community": 88,
+ "community": 95,
"norm_label": "str"
},
{
@@ -13607,7 +13643,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L19",
"id": "app_crud_leave_py_any",
- "community": 88,
+ "community": 95,
"norm_label": "any"
},
{
@@ -13616,7 +13652,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L39",
"id": "crud_leave_list_leaves",
- "community": 88,
+ "community": 95,
"norm_label": "list_leaves()"
},
{
@@ -13625,7 +13661,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L39",
"id": "app_crud_leave_py_session",
- "community": 88,
+ "community": 95,
"norm_label": "session"
},
{
@@ -13634,7 +13670,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L74",
"id": "crud_leave_get_leave",
- "community": 88,
+ "community": 95,
"norm_label": "get_leave()"
},
{
@@ -13643,7 +13679,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L79",
"id": "crud_leave_create_leave",
- "community": 88,
+ "community": 95,
"norm_label": "create_leave()"
},
{
@@ -13652,7 +13688,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L110",
"id": "crud_leave_update_leave",
- "community": 88,
+ "community": 95,
"norm_label": "update_leave()"
},
{
@@ -13661,7 +13697,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L130",
"id": "crud_leave_update_leave_status",
- "community": 88,
+ "community": 95,
"norm_label": "update_leave_status()"
},
{
@@ -13670,7 +13706,7 @@
"source_file": "app/crud/leave.py",
"source_location": "L142",
"id": "crud_leave_soft_delete_leave",
- "community": 88,
+ "community": 95,
"norm_label": "soft_delete_leave()"
},
{
@@ -14048,7 +14084,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L1",
"id": "app_crud_crm_pool_rule_py",
- "community": 33,
+ "community": 97,
"norm_label": "pool_rule.py"
},
{
@@ -14057,7 +14093,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L25",
"id": "crm_pool_rule_total_pages",
- "community": 33,
+ "community": 97,
"norm_label": "total_pages()"
},
{
@@ -14066,7 +14102,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L25",
"id": "app_crud_crm_pool_rule_py_int",
- "community": 33,
+ "community": 97,
"norm_label": "int"
},
{
@@ -14075,7 +14111,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L31",
"id": "crm_pool_rule_row_to_dict",
- "community": 33,
+ "community": 97,
"norm_label": "_row_to_dict()"
},
{
@@ -14084,7 +14120,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L31",
"id": "crmcustomerpoolrule",
- "community": 33,
+ "community": 97,
"norm_label": "crmcustomerpoolrule"
},
{
@@ -14093,7 +14129,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L31",
"id": "app_crud_crm_pool_rule_py_str",
- "community": 33,
+ "community": 97,
"norm_label": "str"
},
{
@@ -14102,7 +14138,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L31",
"id": "app_crud_crm_pool_rule_py_any",
- "community": 33,
+ "community": 97,
"norm_label": "any"
},
{
@@ -14111,7 +14147,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L48",
"id": "crm_pool_rule_list_pool_rules",
- "community": 33,
+ "community": 97,
"norm_label": "list_pool_rules()"
},
{
@@ -14120,7 +14156,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L48",
"id": "app_crud_crm_pool_rule_py_session",
- "community": 33,
+ "community": 97,
"norm_label": "session"
},
{
@@ -14129,7 +14165,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L81",
"id": "crm_pool_rule_get_pool_rule",
- "community": 33,
+ "community": 97,
"norm_label": "get_pool_rule()"
},
{
@@ -14138,7 +14174,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L93",
"id": "crm_pool_rule_create_pool_rule",
- "community": 33,
+ "community": 97,
"norm_label": "create_pool_rule()"
},
{
@@ -14147,7 +14183,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L125",
"id": "crm_pool_rule_update_pool_rule",
- "community": 33,
+ "community": 97,
"norm_label": "update_pool_rule()"
},
{
@@ -14156,7 +14192,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L165",
"id": "crm_pool_rule_delete_pool_rules",
- "community": 33,
+ "community": 97,
"norm_label": "delete_pool_rules()"
},
{
@@ -14165,7 +14201,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L184",
"id": "crm_pool_rule_update_pool_rule_status",
- "community": 33,
+ "community": 97,
"norm_label": "update_pool_rule_status()"
},
{
@@ -14174,7 +14210,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L204",
"id": "crm_pool_rule_execute_pool_rules",
- "community": 33,
+ "community": 97,
"norm_label": "execute_pool_rules()"
},
{
@@ -14183,7 +14219,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L231",
"id": "crm_pool_rule_execute_single_rule",
- "community": 33,
+ "community": 97,
"norm_label": "_execute_single_rule()"
},
{
@@ -14192,7 +14228,7 @@
"source_file": "app/crud/crm/pool_rule.py",
"source_location": "L1",
"id": "app_crud_crm_pool_rule_py_crm_pool_rule_rationale_1",
- "community": 33,
+ "community": 97,
"norm_label": "crm \u516c\u6d77\u6c60\u89c4\u5219 crud + \u89c4\u5219\u6267\u884c\u903b\u8f91"
},
{
@@ -14201,7 +14237,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L1",
"id": "app_crud_crm_customer_pool_py",
- "community": 6,
+ "community": 33,
"norm_label": "customer_pool.py"
},
{
@@ -14210,7 +14246,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L17",
"id": "crm_customer_pool_total_pages",
- "community": 6,
+ "community": 33,
"norm_label": "total_pages()"
},
{
@@ -14219,7 +14255,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L17",
"id": "app_crud_crm_customer_pool_py_int",
- "community": 6,
+ "community": 33,
"norm_label": "int"
},
{
@@ -14228,7 +14264,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L23",
"id": "crm_customer_pool_row_to_dict",
- "community": 6,
+ "community": 33,
"norm_label": "_row_to_dict()"
},
{
@@ -14237,7 +14273,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L23",
"id": "crmcustomerpool",
- "community": 6,
+ "community": 33,
"norm_label": "crmcustomerpool"
},
{
@@ -14246,7 +14282,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L23",
"id": "app_crud_crm_customer_pool_py_str",
- "community": 6,
+ "community": 33,
"norm_label": "str"
},
{
@@ -14255,7 +14291,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L23",
"id": "app_crud_crm_customer_pool_py_any",
- "community": 6,
+ "community": 33,
"norm_label": "any"
},
{
@@ -14264,7 +14300,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L39",
"id": "crm_customer_pool_create_pool_record",
- "community": 6,
+ "community": 33,
"norm_label": "create_pool_record()"
},
{
@@ -14273,7 +14309,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L39",
"id": "app_crud_crm_customer_pool_py_session",
- "community": 6,
+ "community": 33,
"norm_label": "session"
},
{
@@ -14282,7 +14318,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L82",
"id": "crm_customer_pool_list_pool_records",
- "community": 6,
+ "community": 33,
"norm_label": "list_pool_records()"
},
{
@@ -14291,7 +14327,7 @@
"source_file": "app/crud/crm/customer_pool.py",
"source_location": "L119",
"id": "crm_customer_pool_get_pool_record",
- "community": 6,
+ "community": 33,
"norm_label": "get_pool_record()"
},
{
@@ -14804,7 +14840,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L40",
"id": "crm_quote_ensure_quote_in_scope",
- "community": 19,
+ "community": 10,
"norm_label": "_ensure_quote_in_scope()"
},
{
@@ -14813,7 +14849,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L40",
"id": "app_crud_crm_quote_py_session",
- "community": 19,
+ "community": 10,
"norm_label": "session"
},
{
@@ -14831,7 +14867,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L40",
"id": "app_crud_crm_quote_py_str",
- "community": 19,
+ "community": 10,
"norm_label": "str"
},
{
@@ -14840,7 +14876,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L44",
"id": "crm_quote_get_quote_in_scope",
- "community": 19,
+ "community": 10,
"norm_label": "_get_quote_in_scope()"
},
{
@@ -14849,7 +14885,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L58",
"id": "crm_quote_total_pages",
- "community": 19,
+ "community": 10,
"norm_label": "total_pages()"
},
{
@@ -14858,7 +14894,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L58",
"id": "app_crud_crm_quote_py_int",
- "community": 19,
+ "community": 10,
"norm_label": "int"
},
{
@@ -14876,7 +14912,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L64",
"id": "app_crud_crm_quote_py_any",
- "community": 128,
+ "community": 10,
"norm_label": "any"
},
{
@@ -14903,7 +14939,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L72",
"id": "app_crud_crm_quote_py_date",
- "community": 10,
+ "community": 52,
"norm_label": "date"
},
{
@@ -14912,7 +14948,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L90",
"id": "crm_quote_parse_optional_datetime",
- "community": 141,
+ "community": 10,
"norm_label": "_parse_optional_datetime()"
},
{
@@ -14921,7 +14957,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L90",
"id": "app_crud_crm_quote_py_datetime",
- "community": 141,
+ "community": 10,
"norm_label": "datetime"
},
{
@@ -14948,7 +14984,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L123",
"id": "crm_quote_row_to_dict",
- "community": 128,
+ "community": 10,
"norm_label": "_row_to_dict()"
},
{
@@ -14957,7 +14993,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L174",
"id": "crm_quote_quote_row_to_dict",
- "community": 128,
+ "community": 10,
"norm_label": "quote_row_to_dict()"
},
{
@@ -14975,7 +15011,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L178",
"id": "app_crud_crm_quote_py_query",
- "community": 10,
+ "community": 52,
"norm_label": "query"
},
{
@@ -14984,7 +15020,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L309",
"id": "crm_quote_fill_contract_linked_count",
- "community": 128,
+ "community": 10,
"norm_label": "_fill_contract_linked_count()"
},
{
@@ -15056,7 +15092,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L472",
"id": "crm_quote_get_quote",
- "community": 19,
+ "community": 10,
"norm_label": "get_quote()"
},
{
@@ -15065,7 +15101,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L484",
"id": "crm_quote_get_quote_detail",
- "community": 19,
+ "community": 10,
"norm_label": "get_quote_detail()"
},
{
@@ -15074,7 +15110,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L529",
"id": "crm_quote_list_quotes",
- "community": 128,
+ "community": 10,
"norm_label": "list_quotes()"
},
{
@@ -15101,7 +15137,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L791",
"id": "crm_quote_soft_delete_quotes",
- "community": 19,
+ "community": 10,
"norm_label": "soft_delete_quotes()"
},
{
@@ -15110,7 +15146,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L791",
"id": "app_crud_crm_quote_py_bool",
- "community": 19,
+ "community": 10,
"norm_label": "bool"
},
{
@@ -15119,7 +15155,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L818",
"id": "crm_quote_submit_quote",
- "community": 19,
+ "community": 10,
"norm_label": "submit_quote()"
},
{
@@ -15128,7 +15164,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L862",
"id": "crm_quote_save_template",
- "community": 19,
+ "community": 10,
"norm_label": "save_template()"
},
{
@@ -15137,7 +15173,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L880",
"id": "crm_quote_get_template",
- "community": 19,
+ "community": 10,
"norm_label": "get_template()"
},
{
@@ -15146,7 +15182,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L894",
"id": "crm_quote_generate_pdf",
- "community": 19,
+ "community": 10,
"norm_label": "generate_pdf()"
},
{
@@ -15155,7 +15191,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L914",
"id": "crm_quote_generate_share",
- "community": 19,
+ "community": 10,
"norm_label": "generate_share()"
},
{
@@ -15164,7 +15200,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L943",
"id": "crm_quote_view_by_share_code",
- "community": 128,
+ "community": 10,
"norm_label": "view_by_share_code()"
},
{
@@ -15173,7 +15209,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L995",
"id": "crm_quote_accept_quote",
- "community": 19,
+ "community": 10,
"norm_label": "accept_quote()"
},
{
@@ -15182,7 +15218,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1015",
"id": "crm_quote_reject_quote",
- "community": 19,
+ "community": 10,
"norm_label": "reject_quote()"
},
{
@@ -15191,7 +15227,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1037",
"id": "crm_quote_to_contract",
- "community": 65,
+ "community": 10,
"norm_label": "to_contract()"
},
{
@@ -15200,7 +15236,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1104",
"id": "crm_quote_create_new_version",
- "community": 65,
+ "community": 10,
"norm_label": "create_new_version()"
},
{
@@ -15209,7 +15245,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1184",
"id": "crm_quote_query_versions",
- "community": 19,
+ "community": 10,
"norm_label": "query_versions()"
},
{
@@ -15218,7 +15254,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1205",
"id": "crm_quote_withdraw_quote_approval",
- "community": 47,
+ "community": 10,
"norm_label": "withdraw_quote_approval()"
},
{
@@ -15227,7 +15263,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1232",
"id": "crm_quote_invalid_quote",
- "community": 19,
+ "community": 10,
"norm_label": "invalid_quote()"
},
{
@@ -15236,7 +15272,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1256",
"id": "crm_quote_statistics_overview",
- "community": 47,
+ "community": 10,
"norm_label": "statistics_overview()"
},
{
@@ -15245,7 +15281,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1315",
"id": "crm_quote_statistics_status",
- "community": 108,
+ "community": 10,
"norm_label": "statistics_status()"
},
{
@@ -15254,7 +15290,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1348",
"id": "crm_quote_period_key",
- "community": 141,
+ "community": 10,
"norm_label": "_period_key()"
},
{
@@ -15263,7 +15299,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1357",
"id": "crm_quote_statistics_trend",
- "community": 141,
+ "community": 10,
"norm_label": "statistics_trend()"
},
{
@@ -15281,7 +15317,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L124",
"id": "crm_quote_rationale_124",
- "community": 128,
+ "community": 10,
"norm_label": "orm \u2192 camelcase(\u5355\u70b9\u771f\u76f8)"
},
{
@@ -15299,7 +15335,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L310",
"id": "crm_quote_rationale_310",
- "community": 128,
+ "community": 10,
"norm_label": "java: fillcontractlinkedcount"
},
{
@@ -15335,7 +15371,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L799",
"id": "crm_quote_rationale_799",
- "community": 19,
+ "community": 10,
"norm_label": "java: deletewithvalidbyids"
},
{
@@ -15344,7 +15380,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L951",
"id": "crm_quote_rationale_951",
- "community": 128,
+ "community": 10,
"norm_label": "java: viewbysharecode"
},
{
@@ -15353,7 +15389,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1051",
"id": "crm_quote_rationale_1051",
- "community": 65,
+ "community": 10,
"norm_label": "java: tocontract \u2014 \u8fd4\u56de contractid"
},
{
@@ -15362,7 +15398,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1115",
"id": "crm_quote_rationale_1115",
- "community": 47,
+ "community": 10,
"norm_label": "java: createnewversion \u2014 \u8fd4\u56de\u65b0\u62a5\u4ef7\u5355 id"
},
{
@@ -15371,7 +15407,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1214",
"id": "crm_quote_rationale_1214",
- "community": 47,
+ "community": 10,
"norm_label": "java: crmquoteserviceimpl.withdrawapproval(\u6821\u9a8c\u521b\u5efa\u4eba)"
},
{
@@ -15380,7 +15416,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1265",
"id": "crm_quote_rationale_1265",
- "community": 47,
+ "community": 10,
"norm_label": "java: statisticsoverview"
},
{
@@ -15389,7 +15425,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1320",
"id": "crm_quote_rationale_1320",
- "community": 108,
+ "community": 10,
"norm_label": "java: statisticsstatus"
},
{
@@ -15398,7 +15434,7 @@
"source_file": "app/crud/crm/quote.py",
"source_location": "L1366",
"id": "crm_quote_rationale_1366",
- "community": 141,
+ "community": 10,
"norm_label": "java: statisticstrend"
},
{
@@ -15407,7 +15443,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L1",
"id": "app_crud_crm_customer_follow_py",
- "community": 8,
+ "community": 67,
"norm_label": "customer_follow.py"
},
{
@@ -15416,7 +15452,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L18",
"id": "crm_customer_follow_total_pages",
- "community": 8,
+ "community": 67,
"norm_label": "total_pages()"
},
{
@@ -15425,7 +15461,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L18",
"id": "app_crud_crm_customer_follow_py_int",
- "community": 8,
+ "community": 67,
"norm_label": "int"
},
{
@@ -15434,7 +15470,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L27",
"id": "crm_customer_follow_enrich_follow_dict",
- "community": 8,
+ "community": 67,
"norm_label": "_enrich_follow_dict()"
},
{
@@ -15443,7 +15479,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L27",
"id": "app_crud_crm_customer_follow_py_session",
- "community": 8,
+ "community": 67,
"norm_label": "session"
},
{
@@ -15452,7 +15488,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L27",
"id": "app_crud_crm_customer_follow_py_str",
- "community": 8,
+ "community": 67,
"norm_label": "str"
},
{
@@ -15461,7 +15497,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L27",
"id": "app_crud_crm_customer_follow_py_any",
- "community": 8,
+ "community": 67,
"norm_label": "any"
},
{
@@ -15470,7 +15506,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L36",
"id": "crm_customer_follow_row_to_dict",
- "community": 8,
+ "community": 67,
"norm_label": "_row_to_dict()"
},
{
@@ -15479,7 +15515,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L36",
"id": "crmcustomerfollow",
- "community": 8,
+ "community": 67,
"norm_label": "crmcustomerfollow"
},
{
@@ -15488,7 +15524,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L60",
"id": "crm_customer_follow_list_follows",
- "community": 8,
+ "community": 67,
"norm_label": "list_follows()"
},
{
@@ -15497,7 +15533,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L117",
"id": "crm_customer_follow_list_follows_by_customer",
- "community": 8,
+ "community": 67,
"norm_label": "list_follows_by_customer()"
},
{
@@ -15506,7 +15542,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L140",
"id": "crm_customer_follow_get_follow",
- "community": 8,
+ "community": 67,
"norm_label": "get_follow()"
},
{
@@ -15515,7 +15551,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L151",
"id": "crm_customer_follow_create_follow",
- "community": 8,
+ "community": 67,
"norm_label": "create_follow()"
},
{
@@ -15524,7 +15560,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L204",
"id": "crm_customer_follow_update_follow",
- "community": 8,
+ "community": 67,
"norm_label": "update_follow()"
},
{
@@ -15533,7 +15569,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L235",
"id": "crm_customer_follow_soft_delete_follow",
- "community": 8,
+ "community": 67,
"norm_label": "soft_delete_follow()"
},
{
@@ -15542,7 +15578,7 @@
"source_file": "app/crud/crm/customer_follow.py",
"source_location": "L235",
"id": "app_crud_crm_customer_follow_py_bool",
- "community": 8,
+ "community": 67,
"norm_label": "bool"
},
{
@@ -15956,7 +15992,7 @@
"source_file": "app/crud/crm/data_scope_helpers.py",
"source_location": "L1",
"id": "app_crud_crm_data_scope_helpers_py",
- "community": 131,
+ "community": 41,
"norm_label": "data_scope_helpers.py"
},
{
@@ -15992,7 +16028,7 @@
"source_file": "app/crud/crm/data_scope_helpers.py",
"source_location": "L25",
"id": "crm_data_scope_helpers_apply_crm_owner_scope",
- "community": 86,
+ "community": 16,
"norm_label": "apply_crm_owner_scope()"
},
{
@@ -16010,7 +16046,7 @@
"source_file": "app/crud/crm/data_scope_helpers.py",
"source_location": "L33",
"id": "crm_data_scope_helpers_apply_crm_create_by_scope",
- "community": 55,
+ "community": 41,
"norm_label": "apply_crm_create_by_scope()"
},
{
@@ -16028,7 +16064,7 @@
"source_file": "app/crud/crm/data_scope_helpers.py",
"source_location": "L48",
"id": "crm_data_scope_helpers_ensure_crm_create_by_row_in_scope",
- "community": 55,
+ "community": 49,
"norm_label": "ensure_crm_create_by_row_in_scope()"
},
{
@@ -16055,7 +16091,7 @@
"source_file": "app/crud/crm/data_scope_helpers.py",
"source_location": "L1",
"id": "crm_data_scope_helpers_rationale_1",
- "community": 131,
+ "community": 41,
"norm_label": "crm \u6570\u636e\u6743\u9650\u8f85\u52a9(\u8d1f\u8d23\u4eba owner_user_id + \u6807\u51c6 create_by/create_dept_id)\u3002"
},
{
@@ -16091,7 +16127,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L1",
"id": "app_crud_crm_supplier_info_py",
- "community": 29,
+ "community": 4,
"norm_label": "supplier_info.py"
},
{
@@ -16100,7 +16136,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L36",
"id": "crm_supplier_info_total_pages",
- "community": 29,
+ "community": 4,
"norm_label": "total_pages()"
},
{
@@ -16109,7 +16145,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L36",
"id": "app_crud_crm_supplier_info_py_int",
- "community": 29,
+ "community": 4,
"norm_label": "int"
},
{
@@ -16118,7 +16154,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L42",
"id": "crm_supplier_info_row_to_dict",
- "community": 29,
+ "community": 4,
"norm_label": "_row_to_dict()"
},
{
@@ -16127,7 +16163,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L42",
"id": "crmsupplierinfo",
- "community": 29,
+ "community": 4,
"norm_label": "crmsupplierinfo"
},
{
@@ -16136,7 +16172,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L42",
"id": "app_crud_crm_supplier_info_py_str",
- "community": 29,
+ "community": 4,
"norm_label": "str"
},
{
@@ -16145,7 +16181,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L42",
"id": "app_crud_crm_supplier_info_py_any",
- "community": 29,
+ "community": 4,
"norm_label": "any"
},
{
@@ -16154,7 +16190,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L65",
"id": "crm_supplier_info_apply_list_filters",
- "community": 29,
+ "community": 4,
"norm_label": "_apply_list_filters()"
},
{
@@ -16163,7 +16199,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L74",
"id": "crm_supplier_info_list_supplier_info",
- "community": 29,
+ "community": 4,
"norm_label": "list_supplier_info()"
},
{
@@ -16172,7 +16208,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L74",
"id": "app_crud_crm_supplier_info_py_session",
- "community": 29,
+ "community": 4,
"norm_label": "session"
},
{
@@ -16181,7 +16217,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L102",
"id": "crm_supplier_info_list_all_supplier_info",
- "community": 29,
+ "community": 4,
"norm_label": "list_all_supplier_info()"
},
{
@@ -16190,7 +16226,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L122",
"id": "crm_supplier_info_get_supplier_info",
- "community": 86,
+ "community": 10,
"norm_label": "get_supplier_info()"
},
{
@@ -16199,7 +16235,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L138",
"id": "crm_supplier_info_create_supplier_info",
- "community": 29,
+ "community": 4,
"norm_label": "create_supplier_info()"
},
{
@@ -16208,7 +16244,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L176",
"id": "crm_supplier_info_update_supplier_info",
- "community": 29,
+ "community": 4,
"norm_label": "update_supplier_info()"
},
{
@@ -16217,7 +16253,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L212",
"id": "crm_supplier_info_soft_delete_supplier_info",
- "community": 29,
+ "community": 4,
"norm_label": "soft_delete_supplier_info()"
},
{
@@ -16226,7 +16262,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L212",
"id": "app_crud_crm_supplier_info_py_bool",
- "community": 29,
+ "community": 4,
"norm_label": "bool"
},
{
@@ -16235,7 +16271,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L1",
"id": "app_crud_crm_supplier_info_py_crm_supplier_info_rationale_1",
- "community": 29,
+ "community": 4,
"norm_label": "crm \u4f9b\u65b9\u4fe1\u606f crud \u2014 \u5bf9\u7167 crmsupplierinfoserviceimpl.java"
},
{
@@ -16244,7 +16280,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L43",
"id": "crm_supplier_info_rationale_43",
- "community": 29,
+ "community": 4,
"norm_label": "orm \u2192 camelcase(\u5355\u70b9\u771f\u76f8)"
},
{
@@ -16253,7 +16289,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L66",
"id": "crm_supplier_info_rationale_66",
- "community": 29,
+ "community": 4,
"norm_label": "java: buildquerywrapper"
},
{
@@ -16262,7 +16298,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L110",
"id": "crm_supplier_info_rationale_110",
- "community": 29,
+ "community": 4,
"norm_label": "java: querylist(\u4e0d\u5206\u9875,\u62a5\u4ef7\u5355\u4e0b\u62c9)"
},
{
@@ -16271,7 +16307,7 @@
"source_file": "app/crud/crm/supplier_info.py",
"source_location": "L220",
"id": "crm_supplier_info_rationale_220",
- "community": 29,
+ "community": 4,
"norm_label": "java: deletewithvalidbyids(\u95e8\u6237\u8f6f\u5220)"
},
{
@@ -16415,7 +16451,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L1",
"id": "app_crud_crm_quote_approval_py",
- "community": 74,
+ "community": 31,
"norm_label": "quote_approval.py"
},
{
@@ -16424,7 +16460,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L16",
"id": "crm_quote_approval_row_to_dict",
- "community": 74,
+ "community": 31,
"norm_label": "_row_to_dict()"
},
{
@@ -16433,7 +16469,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L16",
"id": "crmquoteapproval",
- "community": 74,
+ "community": 31,
"norm_label": "crmquoteapproval"
},
{
@@ -16442,7 +16478,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L16",
"id": "app_crud_crm_quote_approval_py_str",
- "community": 74,
+ "community": 31,
"norm_label": "str"
},
{
@@ -16451,7 +16487,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L16",
"id": "app_crud_crm_quote_approval_py_any",
- "community": 74,
+ "community": 31,
"norm_label": "any"
},
{
@@ -16460,7 +16496,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L32",
"id": "crm_quote_approval_resolve_user_display_name",
- "community": 74,
+ "community": 31,
"norm_label": "_resolve_user_display_name()"
},
{
@@ -16469,7 +16505,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L32",
"id": "app_crud_crm_quote_approval_py_session",
- "community": 74,
+ "community": 31,
"norm_label": "session"
},
{
@@ -16478,7 +16514,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L42",
"id": "crm_quote_approval_list_quote_approvals",
- "community": 74,
+ "community": 31,
"norm_label": "list_quote_approvals()"
},
{
@@ -16487,7 +16523,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L68",
"id": "crm_quote_approval_get_quote_approval",
- "community": 74,
+ "community": 31,
"norm_label": "get_quote_approval()"
},
{
@@ -16496,7 +16532,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L83",
"id": "crm_quote_approval_create_approval_records",
- "community": 74,
+ "community": 31,
"norm_label": "create_approval_records()"
},
{
@@ -16505,7 +16541,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L125",
"id": "crm_quote_approval_approve_quote",
- "community": 74,
+ "community": 31,
"norm_label": "approve_quote()"
},
{
@@ -16514,7 +16550,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L125",
"id": "app_crud_crm_quote_approval_py_bool",
- "community": 74,
+ "community": 31,
"norm_label": "bool"
},
{
@@ -16523,7 +16559,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L186",
"id": "crm_quote_approval_withdraw_approval",
- "community": 74,
+ "community": 31,
"norm_label": "withdraw_approval()"
},
{
@@ -16532,7 +16568,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L217",
"id": "crm_quote_approval_delete_pending_approvals",
- "community": 74,
+ "community": 31,
"norm_label": "delete_pending_approvals()"
},
{
@@ -16541,7 +16577,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L217",
"id": "app_crud_crm_quote_approval_py_int",
- "community": 74,
+ "community": 31,
"norm_label": "int"
},
{
@@ -16550,7 +16586,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L236",
"id": "crm_quote_approval_refresh_approver_names",
- "community": 74,
+ "community": 31,
"norm_label": "refresh_approver_names()"
},
{
@@ -16559,7 +16595,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L257",
"id": "crm_quote_approval_can_user_approve",
- "community": 74,
+ "community": 31,
"norm_label": "can_user_approve()"
},
{
@@ -16568,7 +16604,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L1",
"id": "crm_quote_approval_rationale_1",
- "community": 74,
+ "community": 31,
"norm_label": "crm \u62a5\u4ef7\u5355\u5ba1\u6279 crud \u2014 \u5bf9\u7167 crmquoteapprovalserviceimpl.java"
},
{
@@ -16577,7 +16613,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L49",
"id": "crm_quote_approval_rationale_49",
- "community": 74,
+ "community": 31,
"norm_label": "java: querylistbyquoteid(\u542b\u5ba1\u6279\u4eba\u6635\u79f0)"
},
{
@@ -16586,7 +16622,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L92",
"id": "crm_quote_approval_rationale_92",
- "community": 74,
+ "community": 31,
"norm_label": "java: createapprovalrecords"
},
{
@@ -16595,7 +16631,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L194",
"id": "crm_quote_approval_rationale_194",
- "community": 74,
+ "community": 31,
"norm_label": "java: crmquoteapprovalserviceimpl.withdrawapproval(\u4e0d\u6821\u9a8c\u521b\u5efa\u4eba)"
},
{
@@ -16604,7 +16640,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L218",
"id": "crm_quote_approval_rationale_218",
- "community": 74,
+ "community": 31,
"norm_label": "java: deletependingapprovals"
},
{
@@ -16613,7 +16649,7 @@
"source_file": "app/crud/crm/quote_approval.py",
"source_location": "L237",
"id": "crm_quote_approval_rationale_237",
- "community": 74,
+ "community": 31,
"norm_label": "java: refreshapprovernames"
},
{
@@ -17648,7 +17684,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L34",
"id": "crm_product_category_row_to_dict",
- "community": 55,
+ "community": 126,
"norm_label": "_category_row_to_dict()"
},
{
@@ -17684,7 +17720,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L50",
"id": "crm_product_list_categories",
- "community": 55,
+ "community": 126,
"norm_label": "list_categories()"
},
{
@@ -17702,7 +17738,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L77",
"id": "crm_product_build_category_tree",
- "community": 55,
+ "community": 89,
"norm_label": "_build_category_tree()"
},
{
@@ -17711,7 +17747,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L88",
"id": "crm_product_collect_category_with_ancestors",
- "community": 55,
+ "community": 89,
"norm_label": "_collect_category_with_ancestors()"
},
{
@@ -17720,7 +17756,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L104",
"id": "crm_product_list_category_tree",
- "community": 55,
+ "community": 89,
"norm_label": "list_category_tree()"
},
{
@@ -17783,7 +17819,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L285",
"id": "crm_product_product_row_to_dict",
- "community": 55,
+ "community": 136,
"norm_label": "_product_row_to_dict()"
},
{
@@ -17799,7 +17835,7 @@
"label": "list_products()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L315",
+ "source_location": "L316",
"id": "crm_product_list_products",
"community": 55,
"norm_label": "list_products()"
@@ -17808,7 +17844,7 @@
"label": "get_product()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L361",
+ "source_location": "L362",
"id": "crm_product_get_product",
"community": 55,
"norm_label": "get_product()"
@@ -17817,7 +17853,7 @@
"label": "get_product_by_no()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L373",
+ "source_location": "L374",
"id": "crm_product_get_product_by_no",
"community": 55,
"norm_label": "get_product_by_no()"
@@ -17826,25 +17862,25 @@
"label": "generate_product_no()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L386",
+ "source_location": "L387",
"id": "crm_product_generate_product_no",
- "community": 55,
+ "community": 112,
"norm_label": "generate_product_no()"
},
{
"label": "generate_barcode()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L414",
+ "source_location": "L415",
"id": "crm_product_generate_barcode",
- "community": 55,
+ "community": 129,
"norm_label": "generate_barcode()"
},
{
"label": "create_product()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L442",
+ "source_location": "L443",
"id": "crm_product_create_product",
"community": 55,
"norm_label": "create_product()"
@@ -17853,7 +17889,7 @@
"label": "update_product()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L501",
+ "source_location": "L502",
"id": "crm_product_update_product",
"community": 55,
"norm_label": "update_product()"
@@ -17862,7 +17898,7 @@
"label": "soft_delete_product()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L563",
+ "source_location": "L564",
"id": "crm_product_soft_delete_product",
"community": 55,
"norm_label": "soft_delete_product()"
@@ -17871,7 +17907,7 @@
"label": "product_no_exists()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L576",
+ "source_location": "L577",
"id": "crm_product_product_no_exists",
"community": 55,
"norm_label": "product_no_exists()"
@@ -17880,7 +17916,7 @@
"label": "barcode_exists()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L593",
+ "source_location": "L594",
"id": "crm_product_barcode_exists",
"community": 55,
"norm_label": "barcode_exists()"
@@ -17889,7 +17925,7 @@
"label": "list_product_options()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L610",
+ "source_location": "L611",
"id": "crm_product_list_product_options",
"community": 55,
"norm_label": "list_product_options()"
@@ -17898,7 +17934,7 @@
"label": "_oss_row_to_dict()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L647",
+ "source_location": "L648",
"id": "crm_product_oss_row_to_dict",
"community": 55,
"norm_label": "_oss_row_to_dict()"
@@ -17907,16 +17943,16 @@
"label": "SysOss",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L647",
+ "source_location": "L648",
"id": "app_crud_crm_product_py_sysoss",
- "community": 55,
+ "community": 122,
"norm_label": "sysoss"
},
{
"label": "list_oss_by_biz()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L665",
+ "source_location": "L666",
"id": "crm_product_list_oss_by_biz",
"community": 55,
"norm_label": "list_oss_by_biz()"
@@ -17925,16 +17961,16 @@
"label": "create_oss()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L681",
+ "source_location": "L682",
"id": "crm_product_create_oss",
- "community": 55,
+ "community": 122,
"norm_label": "create_oss()"
},
{
"label": "soft_delete_oss()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L713",
+ "source_location": "L714",
"id": "crm_product_soft_delete_oss",
"community": 55,
"norm_label": "soft_delete_oss()"
@@ -17943,7 +17979,7 @@
"label": "_normalize_text()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L729",
+ "source_location": "L730",
"id": "crm_product_normalize_text",
"community": 55,
"norm_label": "_normalize_text()"
@@ -17952,7 +17988,7 @@
"label": "_get_quote_item_field()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L736",
+ "source_location": "L737",
"id": "crm_product_get_quote_item_field",
"community": 55,
"norm_label": "_get_quote_item_field()"
@@ -17961,18 +17997,18 @@
"label": "generate_auto_product_no()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L743",
+ "source_location": "L744",
"id": "crm_product_generate_auto_product_no",
- "community": 55,
+ "community": 63,
"norm_label": "generate_auto_product_no()"
},
{
"label": "resolve_product_id_for_quote_item()",
"file_type": "code",
"source_file": "app/crud/crm/product.py",
- "source_location": "L759",
+ "source_location": "L760",
"id": "crm_product_resolve_product_id_for_quote_item",
- "community": 55,
+ "community": 63,
"norm_label": "resolve_product_id_for_quote_item()"
},
{
@@ -17990,7 +18026,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L35",
"id": "crm_product_rationale_35",
- "community": 55,
+ "community": 126,
"norm_label": "\u5206\u7c7b orm \u5bf9\u8c61\u8f6c dict(camelcase \u952e\u540d)"
},
{
@@ -17999,7 +18035,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L58",
"id": "crm_product_rationale_58",
- "community": 55,
+ "community": 126,
"norm_label": "\u83b7\u53d6\u5206\u7c7b(\u6241\u5e73\u5217\u8868,\u652f\u6301\u540d\u79f0\u6a21\u7cca\u4e0e\u72b6\u6001\u7b5b\u9009)"
},
{
@@ -18008,7 +18044,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L80",
"id": "crm_product_rationale_80",
- "community": 55,
+ "community": 89,
"norm_label": "\u6309 parentid \u5c06\u6241\u5e73\u5206\u7c7b\u5217\u8868\u7ec4\u88c5\u4e3a\u5d4c\u5957\u6811"
},
{
@@ -18017,7 +18053,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L91",
"id": "crm_product_rationale_91",
- "community": 55,
+ "community": 89,
"norm_label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7,\u4f9b\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002"
},
{
@@ -18026,7 +18062,7 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L112",
"id": "crm_product_rationale_112",
- "community": 55,
+ "community": 89,
"norm_label": "\u83b7\u53d6\u4ea7\u54c1\u5206\u7c7b\u6811(\u5d4c\u5957 children,\u4f9b\u6811\u5f62\u8868\u683c/\u6811\u9009\u62e9\u5668\u4f7f\u7528)"
},
{
@@ -18035,43 +18071,43 @@
"source_file": "app/crud/crm/product.py",
"source_location": "L286",
"id": "crm_product_rationale_286",
- "community": 55,
+ "community": 136,
"norm_label": "\u4ea7\u54c1 orm \u5bf9\u8c61\u8f6c dict(camelcase \u952e\u540d)"
},
{
"label": "\u751f\u6210\u4ea7\u54c1\u7f16\u53f7\uff08\u683c\u5f0f\uff1aCP + yyyyMMdd + 3\u4f4d\u5e8f\u53f7\uff0c\u5982 CP20260530001\uff09",
"file_type": "rationale",
"source_file": "app/crud/crm/product.py",
- "source_location": "L387",
- "id": "crm_product_rationale_387",
- "community": 55,
+ "source_location": "L388",
+ "id": "crm_product_rationale_388",
+ "community": 112,
"norm_label": "\u751f\u6210\u4ea7\u54c1\u7f16\u53f7(\u683c\u5f0f:cp + yyyymmdd + 3\u4f4d\u5e8f\u53f7,\u5982 cp20260530001)"
},
{
"label": "\u751f\u6210\u552f\u4e00\u6761\u7801\uff08\u7eaf\u6570\u5b57\uff1ayyyyMMdd + 6\u4f4d\u5e8f\u53f7\uff0c\u5982 20260606000001\uff09",
"file_type": "rationale",
"source_file": "app/crud/crm/product.py",
- "source_location": "L415",
- "id": "crm_product_rationale_415",
- "community": 55,
+ "source_location": "L416",
+ "id": "crm_product_rationale_416",
+ "community": 129,
"norm_label": "\u751f\u6210\u552f\u4e00\u6761\u7801(\u7eaf\u6570\u5b57:yyyymmdd + 6\u4f4d\u5e8f\u53f7,\u5982 20260606000001)"
},
{
"label": "Java: generateAutoProductNo \u2014 SXWL + 8\u4f4d\u968f\u673a\u5927\u5199\u5b57\u7b26",
"file_type": "rationale",
"source_file": "app/crud/crm/product.py",
- "source_location": "L744",
- "id": "crm_product_rationale_744",
- "community": 55,
+ "source_location": "L745",
+ "id": "crm_product_rationale_745",
+ "community": 63,
"norm_label": "java: generateautoproductno \u2014 sxwl + 8\u4f4d\u968f\u673a\u5927\u5199\u5b57\u7b26"
},
{
"label": "Java: resolveProductIdForQuoteItem\uff08CrmProduct \u65e0 tax_rate\uff0c\u8df3\u8fc7\u7a0e\u7387\u5339\u914d\uff09",
"file_type": "rationale",
"source_file": "app/crud/crm/product.py",
- "source_location": "L766",
- "id": "crm_product_rationale_766",
- "community": 55,
+ "source_location": "L767",
+ "id": "crm_product_rationale_767",
+ "community": 63,
"norm_label": "java: resolveproductidforquoteitem(crmproduct \u65e0 tax_rate,\u8df3\u8fc7\u7a0e\u7387\u5339\u914d)"
},
{
@@ -18080,7 +18116,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L1",
"id": "app_crud_crm_customer_py",
- "community": 6,
+ "community": 33,
"norm_label": "customer.py"
},
{
@@ -18089,7 +18125,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L22",
"id": "crm_customer_ensure_customer_in_scope",
- "community": 6,
+ "community": 33,
"norm_label": "_ensure_customer_in_scope()"
},
{
@@ -18098,7 +18134,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L22",
"id": "app_crud_crm_customer_py_session",
- "community": 6,
+ "community": 33,
"norm_label": "session"
},
{
@@ -18107,7 +18143,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L22",
"id": "app_crud_crm_customer_py_crmcustomer",
- "community": 6,
+ "community": 33,
"norm_label": "crmcustomer"
},
{
@@ -18116,7 +18152,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L22",
"id": "app_crud_crm_customer_py_str",
- "community": 6,
+ "community": 33,
"norm_label": "str"
},
{
@@ -18125,7 +18161,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L26",
"id": "crm_customer_total_pages",
- "community": 6,
+ "community": 33,
"norm_label": "total_pages()"
},
{
@@ -18134,7 +18170,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L26",
"id": "app_crud_crm_customer_py_int",
- "community": 6,
+ "community": 33,
"norm_label": "int"
},
{
@@ -18143,7 +18179,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L36",
"id": "crm_customer_parse_optional_date",
- "community": 6,
+ "community": 33,
"norm_label": "_parse_optional_date()"
},
{
@@ -18152,7 +18188,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L36",
"id": "app_crud_crm_customer_py_any",
- "community": 6,
+ "community": 33,
"norm_label": "any"
},
{
@@ -18161,7 +18197,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L36",
"id": "app_crud_crm_customer_py_date",
- "community": 6,
+ "community": 33,
"norm_label": "date"
},
{
@@ -18170,7 +18206,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L54",
"id": "crm_customer_parse_optional_datetime",
- "community": 6,
+ "community": 33,
"norm_label": "_parse_optional_datetime()"
},
{
@@ -18179,7 +18215,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L54",
"id": "app_crud_crm_customer_py_datetime",
- "community": 6,
+ "community": 33,
"norm_label": "datetime"
},
{
@@ -18188,7 +18224,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L70",
"id": "crm_customer_resolve_user_display_name",
- "community": 6,
+ "community": 33,
"norm_label": "_resolve_user_display_name()"
},
{
@@ -18197,7 +18233,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L80",
"id": "crm_customer_enrich_user_names",
- "community": 6,
+ "community": 33,
"norm_label": "_enrich_user_names()"
},
{
@@ -18206,7 +18242,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L107",
"id": "crm_customer_row_to_dict",
- "community": 6,
+ "community": 33,
"norm_label": "_row_to_dict()"
},
{
@@ -18215,7 +18251,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L161",
"id": "crm_customer_list_customers",
- "community": 6,
+ "community": 33,
"norm_label": "list_customers()"
},
{
@@ -18224,7 +18260,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L161",
"id": "app_crud_crm_customer_py_bool",
- "community": 6,
+ "community": 33,
"norm_label": "bool"
},
{
@@ -18233,7 +18269,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L276",
"id": "crm_customer_list_pool_customers",
- "community": 6,
+ "community": 33,
"norm_label": "list_pool_customers()"
},
{
@@ -18242,7 +18278,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L303",
"id": "crm_customer_get_customer",
- "community": 6,
+ "community": 33,
"norm_label": "get_customer()"
},
{
@@ -18251,7 +18287,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L314",
"id": "crm_customer_get_customer_by_no",
- "community": 6,
+ "community": 33,
"norm_label": "get_customer_by_no()"
},
{
@@ -18260,7 +18296,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L326",
"id": "crm_customer_generate_customer_no",
- "community": 6,
+ "community": 33,
"norm_label": "generate_customer_no()"
},
{
@@ -18269,7 +18305,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L352",
"id": "crm_customer_customer_name_exists",
- "community": 6,
+ "community": 33,
"norm_label": "customer_name_exists()"
},
{
@@ -18278,7 +18314,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L365",
"id": "crm_customer_check_duplicate_customer",
- "community": 6,
+ "community": 33,
"norm_label": "check_duplicate_customer()"
},
{
@@ -18287,7 +18323,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L386",
"id": "crm_customer_create_customer",
- "community": 6,
+ "community": 33,
"norm_label": "create_customer()"
},
{
@@ -18296,7 +18332,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L449",
"id": "crm_customer_update_customer",
- "community": 6,
+ "community": 33,
"norm_label": "update_customer()"
},
{
@@ -18305,7 +18341,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L496",
"id": "crm_customer_soft_delete_customer",
- "community": 6,
+ "community": 33,
"norm_label": "soft_delete_customer()"
},
{
@@ -18314,7 +18350,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L513",
"id": "crm_customer_transfer_customer",
- "community": 6,
+ "community": 33,
"norm_label": "transfer_customer()"
},
{
@@ -18323,7 +18359,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L555",
"id": "crm_customer_deal_customer",
- "community": 6,
+ "community": 33,
"norm_label": "deal_customer()"
},
{
@@ -18332,7 +18368,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L555",
"id": "app_crud_crm_customer_py_float",
- "community": 6,
+ "community": 33,
"norm_label": "float"
},
{
@@ -18341,7 +18377,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L583",
"id": "crm_customer_into_pool",
- "community": 6,
+ "community": 33,
"norm_label": "into_pool()"
},
{
@@ -18350,7 +18386,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L626",
"id": "crm_customer_claim_customer",
- "community": 6,
+ "community": 33,
"norm_label": "claim_customer()"
},
{
@@ -18359,7 +18395,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L664",
"id": "crm_customer_batch_claim_customers",
- "community": 6,
+ "community": 33,
"norm_label": "batch_claim_customers()"
},
{
@@ -18368,7 +18404,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L677",
"id": "crm_customer_assign_customer",
- "community": 6,
+ "community": 33,
"norm_label": "assign_customer()"
},
{
@@ -18377,7 +18413,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L728",
"id": "crm_customer_update_follow_stats",
- "community": 6,
+ "community": 33,
"norm_label": "update_follow_stats()"
},
{
@@ -18386,7 +18422,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L745",
"id": "crm_customer_update_contact_count",
- "community": 6,
+ "community": 33,
"norm_label": "update_contact_count()"
},
{
@@ -18395,7 +18431,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L761",
"id": "crm_customer_get_park_area_list",
- "community": 6,
+ "community": 33,
"norm_label": "get_park_area_list()"
},
{
@@ -18404,7 +18440,7 @@
"source_file": "app/crud/crm/customer.py",
"source_location": "L1",
"id": "app_crud_crm_customer_py_crm_customer_rationale_1",
- "community": 6,
+ "community": 33,
"norm_label": "crm \u5ba2\u6237 crud(\u5ba2\u6237\u4e3b\u8868 + \u8f6c\u79fb/\u6210\u4ea4/\u516c\u6d77\u6c60\u64cd\u4f5c)"
},
{
@@ -18413,7 +18449,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L1",
"id": "app_crud_crm_statistics_py",
- "community": 8,
+ "community": 67,
"norm_label": "statistics.py"
},
{
@@ -18422,7 +18458,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L14",
"id": "crm_statistics_customer_base_query",
- "community": 8,
+ "community": 67,
"norm_label": "_customer_base_query()"
},
{
@@ -18431,7 +18467,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L14",
"id": "app_crud_crm_statistics_py_session",
- "community": 8,
+ "community": 67,
"norm_label": "session"
},
{
@@ -18440,7 +18476,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L14",
"id": "app_crud_crm_statistics_py_str",
- "community": 8,
+ "community": 67,
"norm_label": "str"
},
{
@@ -18449,7 +18485,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L24",
"id": "crm_statistics_get_overview_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_overview_statistics()"
},
{
@@ -18458,7 +18494,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L24",
"id": "app_crud_crm_statistics_py_any",
- "community": 8,
+ "community": 67,
"norm_label": "any"
},
{
@@ -18467,7 +18503,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L46",
"id": "crm_statistics_get_source_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_source_statistics()"
},
{
@@ -18476,7 +18512,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L59",
"id": "crm_statistics_get_level_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_level_statistics()"
},
{
@@ -18485,7 +18521,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L72",
"id": "crm_statistics_get_industry_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_industry_statistics()"
},
{
@@ -18494,7 +18530,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L85",
"id": "crm_statistics_get_trend_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_trend_statistics()"
},
{
@@ -18503,7 +18539,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L108",
"id": "crm_statistics_get_owner_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_owner_statistics()"
},
{
@@ -18512,7 +18548,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L124",
"id": "crm_statistics_get_follow_statistics",
- "community": 8,
+ "community": 67,
"norm_label": "get_follow_statistics()"
},
{
@@ -18521,7 +18557,7 @@
"source_file": "app/crud/crm/statistics.py",
"source_location": "L27",
"id": "crm_statistics_rationale_27",
- "community": 8,
+ "community": 67,
"norm_label": "\u5ba2\u6237\u7edf\u8ba1\u6982\u89c8:\u5ba2\u6237\u603b\u6570\u3001\u516c\u6d77\u6c60\u6570\u3001\u672c\u6708\u65b0\u589e\u3001\u6210\u4ea4\u6570"
},
{
@@ -18530,7 +18566,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1",
"id": "app_crud_crm_contract_py",
- "community": 86,
+ "community": 16,
"norm_label": "contract.py"
},
{
@@ -18539,7 +18575,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L48",
"id": "crm_contract_ensure_contract_in_scope",
- "community": 86,
+ "community": 16,
"norm_label": "_ensure_contract_in_scope()"
},
{
@@ -18548,7 +18584,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L48",
"id": "app_crud_crm_contract_py_session",
- "community": 86,
+ "community": 16,
"norm_label": "session"
},
{
@@ -18566,7 +18602,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L48",
"id": "app_crud_crm_contract_py_str",
- "community": 86,
+ "community": 16,
"norm_label": "str"
},
{
@@ -18575,7 +18611,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L52",
"id": "crm_contract_get_contract_row_in_scope",
- "community": 86,
+ "community": 47,
"norm_label": "_get_contract_row_in_scope()"
},
{
@@ -18584,7 +18620,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L69",
"id": "crm_contract_total_pages",
- "community": 86,
+ "community": 16,
"norm_label": "total_pages()"
},
{
@@ -18593,7 +18629,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L69",
"id": "app_crud_crm_contract_py_int",
- "community": 86,
+ "community": 16,
"norm_label": "int"
},
{
@@ -18602,7 +18638,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L75",
"id": "crm_contract_decimal_value",
- "community": 86,
+ "community": 16,
"norm_label": "_decimal_value()"
},
{
@@ -18611,7 +18647,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L75",
"id": "app_crud_crm_contract_py_any",
- "community": 86,
+ "community": 16,
"norm_label": "any"
},
{
@@ -18620,7 +18656,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L75",
"id": "app_crud_crm_contract_py_decimal",
- "community": 86,
+ "community": 16,
"norm_label": "decimal"
},
{
@@ -18629,7 +18665,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L83",
"id": "crm_contract_parse_optional_date",
- "community": 86,
+ "community": 16,
"norm_label": "_parse_optional_date()"
},
{
@@ -18647,7 +18683,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L101",
"id": "crm_contract_parse_optional_datetime",
- "community": 86,
+ "community": 16,
"norm_label": "_parse_optional_datetime()"
},
{
@@ -18665,7 +18701,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L117",
"id": "crm_contract_get_field",
- "community": 86,
+ "community": 16,
"norm_label": "_get_field()"
},
{
@@ -18674,7 +18710,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L124",
"id": "crm_contract_resolve_user_display_name",
- "community": 86,
+ "community": 16,
"norm_label": "_resolve_user_display_name()"
},
{
@@ -18683,7 +18719,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L134",
"id": "crm_contract_is_blank",
- "community": 86,
+ "community": 47,
"norm_label": "_is_blank()"
},
{
@@ -18692,7 +18728,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L134",
"id": "app_crud_crm_contract_py_bool",
- "community": 86,
+ "community": 47,
"norm_label": "bool"
},
{
@@ -18701,7 +18737,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L138",
"id": "crm_contract_first_non_blank",
- "community": 86,
+ "community": 16,
"norm_label": "_first_non_blank()"
},
{
@@ -18710,7 +18746,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L146",
"id": "crm_contract_get_default_invoice_info",
- "community": 86,
+ "community": 16,
"norm_label": "_get_default_invoice_info()"
},
{
@@ -18719,7 +18755,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L156",
"id": "crm_contract_build_customer_address",
- "community": 86,
+ "community": 16,
"norm_label": "_build_customer_address()"
},
{
@@ -18728,7 +18764,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L168",
"id": "crm_contract_row_to_dict",
- "community": 64,
+ "community": 16,
"norm_label": "_row_to_dict()"
},
{
@@ -18737,7 +18773,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L245",
"id": "crm_contract_contract_row_to_dict",
- "community": 52,
+ "community": 16,
"norm_label": "contract_row_to_dict()"
},
{
@@ -18746,7 +18782,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L249",
"id": "crm_contract_build_contract_filters",
- "community": 86,
+ "community": 16,
"norm_label": "_build_contract_filters()"
},
{
@@ -18764,7 +18800,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L390",
"id": "crm_contract_list_contracts",
- "community": 86,
+ "community": 16,
"norm_label": "list_contracts()"
},
{
@@ -18773,7 +18809,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L424",
"id": "crm_contract_get_contract",
- "community": 86,
+ "community": 47,
"norm_label": "get_contract()"
},
{
@@ -18782,7 +18818,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L529",
"id": "crm_contract_get_contract_detail",
- "community": 86,
+ "community": 16,
"norm_label": "get_contract_detail()"
},
{
@@ -18791,7 +18827,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L549",
"id": "crm_contract_get_contract_row",
- "community": 86,
+ "community": 47,
"norm_label": "get_contract_row()"
},
{
@@ -18800,7 +18836,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L566",
"id": "crm_contract_get_supplier_short_name",
- "community": 86,
+ "community": 16,
"norm_label": "_get_supplier_short_name()"
},
{
@@ -18809,7 +18845,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L579",
"id": "crm_contract_generate_contract_no",
- "community": 60,
+ "community": 88,
"norm_label": "generate_contract_no()"
},
{
@@ -18827,7 +18863,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L649",
"id": "crm_contract_validate_contract_type_and_products",
- "community": 86,
+ "community": 16,
"norm_label": "_validate_contract_type_and_products()"
},
{
@@ -18836,7 +18872,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L657",
"id": "crm_contract_normalize_framework_contract_data",
- "community": 86,
+ "community": 16,
"norm_label": "_normalize_framework_contract_data()"
},
{
@@ -18845,7 +18881,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L670",
"id": "crm_contract_validate_product_prices_by_contract_type",
- "community": 86,
+ "community": 16,
"norm_label": "_validate_product_prices_by_contract_type()"
},
{
@@ -18854,7 +18890,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L684",
"id": "crm_contract_validate_sale_purchase_contract_amount",
- "community": 86,
+ "community": 16,
"norm_label": "_validate_sale_purchase_contract_amount()"
},
{
@@ -18863,7 +18899,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L693",
"id": "crm_contract_resolve_contract_product_ids",
- "community": 86,
+ "community": 16,
"norm_label": "_resolve_contract_product_ids()"
},
{
@@ -18872,7 +18908,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L711",
"id": "crm_contract_calc_amount_with_tax",
- "community": 86,
+ "community": 16,
"norm_label": "_calc_amount_with_tax()"
},
{
@@ -18881,7 +18917,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L717",
"id": "crm_contract_apply_contract_entity_fields",
- "community": 86,
+ "community": 16,
"norm_label": "_apply_contract_entity_fields()"
},
{
@@ -18890,7 +18926,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L893",
"id": "crm_contract_create_contract",
- "community": 86,
+ "community": 16,
"norm_label": "create_contract()"
},
{
@@ -18899,7 +18935,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L980",
"id": "crm_contract_update_contract",
- "community": 86,
+ "community": 16,
"norm_label": "update_contract()"
},
{
@@ -18908,7 +18944,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1052",
"id": "crm_contract_soft_delete_contracts",
- "community": 86,
+ "community": 47,
"norm_label": "soft_delete_contracts()"
},
{
@@ -18944,7 +18980,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1141",
"id": "crm_contract_submit_contract_approval",
- "community": 86,
+ "community": 47,
"norm_label": "submit_contract_approval()"
},
{
@@ -18953,7 +18989,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1184",
"id": "crm_contract_batch_submit_contract_approval",
- "community": 148,
+ "community": 47,
"norm_label": "batch_submit_contract_approval()"
},
{
@@ -18962,7 +18998,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1214",
"id": "crm_contract_withdraw_contract_approval",
- "community": 86,
+ "community": 47,
"norm_label": "withdraw_contract_approval()"
},
{
@@ -18971,7 +19007,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1241",
"id": "crm_contract_start_execute",
- "community": 86,
+ "community": 47,
"norm_label": "start_execute()"
},
{
@@ -18980,7 +19016,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1264",
"id": "crm_contract_finish_contract",
- "community": 86,
+ "community": 47,
"norm_label": "finish_contract()"
},
{
@@ -18989,7 +19025,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1287",
"id": "crm_contract_invalid_contract",
- "community": 86,
+ "community": 47,
"norm_label": "invalid_contract()"
},
{
@@ -18998,7 +19034,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1315",
"id": "crm_contract_save_template",
- "community": 86,
+ "community": 47,
"norm_label": "save_template()"
},
{
@@ -19007,7 +19043,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1345",
"id": "crm_contract_get_template",
- "community": 86,
+ "community": 47,
"norm_label": "get_template()"
},
{
@@ -19016,7 +19052,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1352",
"id": "crm_contract_upload_file",
- "community": 86,
+ "community": 47,
"norm_label": "upload_file()"
},
{
@@ -19025,7 +19061,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1369",
"id": "crm_contract_upload_attachments",
- "community": 86,
+ "community": 47,
"norm_label": "upload_attachments()"
},
{
@@ -19034,7 +19070,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1394",
"id": "crm_contract_upload_attachments_with_category",
- "community": 86,
+ "community": 47,
"norm_label": "upload_attachments_with_category()"
},
{
@@ -19043,7 +19079,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1441",
"id": "crm_contract_statistics_overview",
- "community": 86,
+ "community": 16,
"norm_label": "statistics_overview()"
},
{
@@ -19052,7 +19088,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1504",
"id": "crm_contract_statistics_by_status",
- "community": 86,
+ "community": 16,
"norm_label": "statistics_by_status()"
},
{
@@ -19061,7 +19097,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1538",
"id": "crm_contract_statistics_by_type",
- "community": 86,
+ "community": 16,
"norm_label": "statistics_by_type()"
},
{
@@ -19070,7 +19106,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1573",
"id": "crm_contract_contract_period_key",
- "community": 86,
+ "community": 16,
"norm_label": "_contract_period_key()"
},
{
@@ -19079,7 +19115,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1582",
"id": "crm_contract_statistics_trend",
- "community": 86,
+ "community": 16,
"norm_label": "statistics_trend()"
},
{
@@ -19088,7 +19124,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1628",
"id": "crm_contract_query_expiring",
- "community": 86,
+ "community": 16,
"norm_label": "query_expiring()"
},
{
@@ -19097,7 +19133,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1655",
"id": "crm_contract_quote_products_to_contract_products",
- "community": 92,
+ "community": 128,
"norm_label": "_quote_products_to_contract_products()"
},
{
@@ -19106,7 +19142,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1683",
"id": "crm_contract_create_from_quote",
- "community": 92,
+ "community": 128,
"norm_label": "create_from_quote()"
},
{
@@ -19115,7 +19151,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1742",
"id": "crm_contract_renew_contract",
- "community": 146,
+ "community": 109,
"norm_label": "renew_contract()"
},
{
@@ -19124,7 +19160,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1796",
"id": "crm_contract_export_contracts",
- "community": 64,
+ "community": 16,
"norm_label": "export_contracts()"
},
{
@@ -19133,7 +19169,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1813",
"id": "crm_contract_change_row_to_dict",
- "community": 86,
+ "community": 16,
"norm_label": "_change_row_to_dict()"
},
{
@@ -19151,7 +19187,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1835",
"id": "crm_contract_list_contract_changes",
- "community": 86,
+ "community": 16,
"norm_label": "list_contract_changes()"
},
{
@@ -19160,7 +19196,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1864",
"id": "crm_contract_get_contract_change_detail",
- "community": 86,
+ "community": 16,
"norm_label": "get_contract_change_detail()"
},
{
@@ -19169,7 +19205,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1888",
"id": "crm_contract_template_row_to_dict",
- "community": 86,
+ "community": 16,
"norm_label": "_template_row_to_dict()"
},
{
@@ -19187,7 +19223,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1913",
"id": "crm_contract_list_contract_templates",
- "community": 86,
+ "community": 16,
"norm_label": "list_contract_templates()"
},
{
@@ -19196,7 +19232,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1946",
"id": "crm_contract_get_contract_template_detail",
- "community": 86,
+ "community": 16,
"norm_label": "get_contract_template_detail()"
},
{
@@ -19205,7 +19241,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1966",
"id": "crm_contract_opportunity_products_to_contract_products",
- "community": 105,
+ "community": 107,
"norm_label": "_opportunity_products_to_contract_products()"
},
{
@@ -19214,7 +19250,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1991",
"id": "crm_contract_create_from_opportunity",
- "community": 105,
+ "community": 107,
"norm_label": "create_from_opportunity()"
},
{
@@ -19223,7 +19259,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2044",
"id": "crm_contract_sign_contract",
- "community": 86,
+ "community": 47,
"norm_label": "sign_contract()"
},
{
@@ -19232,7 +19268,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2075",
"id": "crm_contract_batch_assign_owner",
- "community": 86,
+ "community": 47,
"norm_label": "batch_assign_owner()"
},
{
@@ -19241,7 +19277,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2109",
"id": "crm_contract_download_contract_pdf",
- "community": 149,
+ "community": 47,
"norm_label": "download_contract_pdf()"
},
{
@@ -19250,7 +19286,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2126",
"id": "crm_contract_generate_template_no",
- "community": 84,
+ "community": 81,
"norm_label": "generate_template_no()"
},
{
@@ -19259,7 +19295,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2158",
"id": "crm_contract_get_change_row",
- "community": 86,
+ "community": 16,
"norm_label": "_get_change_row()"
},
{
@@ -19268,7 +19304,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2170",
"id": "crm_contract_enrich_change_rows",
- "community": 86,
+ "community": 16,
"norm_label": "_enrich_change_rows()"
},
{
@@ -19277,7 +19313,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2185",
"id": "crm_contract_create_contract_change",
- "community": 86,
+ "community": 16,
"norm_label": "create_contract_change()"
},
{
@@ -19286,7 +19322,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2236",
"id": "crm_contract_update_contract_change",
- "community": 86,
+ "community": 16,
"norm_label": "update_contract_change()"
},
{
@@ -19295,7 +19331,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2274",
"id": "crm_contract_soft_delete_contract_changes",
- "community": 86,
+ "community": 16,
"norm_label": "soft_delete_contract_changes()"
},
{
@@ -19304,7 +19340,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2300",
"id": "crm_contract_submit_change_approval",
- "community": 86,
+ "community": 47,
"norm_label": "submit_change_approval()"
},
{
@@ -19313,7 +19349,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2323",
"id": "crm_contract_withdraw_change",
- "community": 86,
+ "community": 16,
"norm_label": "withdraw_change()"
},
{
@@ -19322,7 +19358,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2336",
"id": "crm_contract_execute_change",
- "community": 86,
+ "community": 16,
"norm_label": "execute_change()"
},
{
@@ -19331,7 +19367,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2348",
"id": "crm_contract_export_contract_changes",
- "community": 86,
+ "community": 16,
"norm_label": "export_contract_changes()"
},
{
@@ -19340,7 +19376,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2364",
"id": "crm_contract_create_contract_template",
- "community": 86,
+ "community": 16,
"norm_label": "create_contract_template()"
},
{
@@ -19349,7 +19385,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2414",
"id": "crm_contract_update_contract_template",
- "community": 86,
+ "community": 16,
"norm_label": "update_contract_template()"
},
{
@@ -19358,7 +19394,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2471",
"id": "crm_contract_soft_delete_contract_templates",
- "community": 86,
+ "community": 16,
"norm_label": "soft_delete_contract_templates()"
},
{
@@ -19367,7 +19403,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2505",
"id": "crm_contract_toggle_contract_template_active",
- "community": 86,
+ "community": 16,
"norm_label": "toggle_contract_template_active()"
},
{
@@ -19376,7 +19412,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2531",
"id": "crm_contract_export_contract_templates",
- "community": 86,
+ "community": 16,
"norm_label": "export_contract_templates()"
},
{
@@ -19385,7 +19421,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1",
"id": "app_crud_crm_contract_py_crm_contract_rationale_1",
- "community": 86,
+ "community": 16,
"norm_label": "crm \u5408\u540c crud \u2014 \u5bf9\u7167 crmcontractserviceimpl.java(\u5217\u8868/\u8be6\u60c5 p1)"
},
{
@@ -19394,7 +19430,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L169",
"id": "crm_contract_rationale_169",
- "community": 64,
+ "community": 16,
"norm_label": "orm \u2192 camelcase(\u5355\u70b9\u771f\u76f8)"
},
{
@@ -19403,7 +19439,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L256",
"id": "crm_contract_rationale_256",
- "community": 86,
+ "community": 16,
"norm_label": "java: buildquerywrapper"
},
{
@@ -19412,7 +19448,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L586",
"id": "crm_contract_rationale_586",
- "community": 60,
+ "community": 88,
"norm_label": "java: generatecontractno \u2014 {\u4f9b\u65b9\u7f16\u7801}/x-jt{yyyymmdd}{3\u4f4d\u5e8f\u53f7}"
},
{
@@ -19430,7 +19466,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1060",
"id": "crm_contract_rationale_1060",
- "community": 86,
+ "community": 47,
"norm_label": "java: deletewithvalidbyids \u2014 \u8f6f\u5220\u9664"
},
{
@@ -19448,7 +19484,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1195",
"id": "crm_contract_rationale_1195",
- "community": 148,
+ "community": 47,
"norm_label": "java: batchsubmitapproval"
},
{
@@ -19457,7 +19493,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1223",
"id": "crm_contract_rationale_1223",
- "community": 86,
+ "community": 47,
"norm_label": "java: withdrawapproval"
},
{
@@ -19466,7 +19502,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1693",
"id": "crm_contract_rationale_1693",
- "community": 92,
+ "community": 128,
"norm_label": "java: createfromquote \u2014 \u8fd4\u56de\u5408\u540c id"
},
{
@@ -19475,7 +19511,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1752",
"id": "crm_contract_rationale_1752",
- "community": 146,
+ "community": 109,
"norm_label": "java: renewcontract \u2014 \u57fa\u7840\u7eed\u7b7e"
},
{
@@ -19484,7 +19520,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L1803",
"id": "crm_contract_rationale_1803",
- "community": 64,
+ "community": 16,
"norm_label": "java: querylist for export"
},
{
@@ -19493,7 +19529,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2001",
"id": "crm_contract_rationale_2001",
- "community": 105,
+ "community": 107,
"norm_label": "java: createfromopportunity \u2014 \u8fd4\u56de\u5408\u540c id"
},
{
@@ -19502,7 +19538,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2085",
"id": "crm_contract_rationale_2085",
- "community": 86,
+ "community": 47,
"norm_label": "java: batchassignowner"
},
{
@@ -19511,7 +19547,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2116",
"id": "crm_contract_rationale_2116",
- "community": 149,
+ "community": 47,
"norm_label": "java: downloadcontractpdf \u2014 \u8fd4\u56de\u5408\u540c\u6587\u4ef6 url/\u8def\u5f84"
},
{
@@ -19520,7 +19556,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2127",
"id": "crm_contract_rationale_2127",
- "community": 84,
+ "community": 81,
"norm_label": "java: generatetemplateno \u2014 tmpl{yyyymmdd}{4\u4f4d\u5e8f\u53f7}"
},
{
@@ -19529,7 +19565,7 @@
"source_file": "app/crud/crm/contract.py",
"source_location": "L2309",
"id": "crm_contract_rationale_2309",
- "community": 86,
+ "community": 47,
"norm_label": "java controller todo \u2014 \u4fdd\u6301 pending,\u8bb0\u5f55\u5907\u6ce8"
},
{
@@ -19826,7 +19862,7 @@
"source_file": "app/api/public.py",
"source_location": "L1",
"id": "app_api_public_py",
- "community": 132,
+ "community": 130,
"norm_label": "public.py"
},
{
@@ -19835,7 +19871,7 @@
"source_file": "app/api/public.py",
"source_location": "L35",
"id": "api_public_avatar_url_field",
- "community": 132,
+ "community": 130,
"norm_label": "_avatar_url_field()"
},
{
@@ -19844,7 +19880,7 @@
"source_file": "app/api/public.py",
"source_location": "L35",
"id": "app_api_public_py_sysuser",
- "community": 132,
+ "community": 130,
"norm_label": "sysuser"
},
{
@@ -19853,7 +19889,7 @@
"source_file": "app/api/public.py",
"source_location": "L35",
"id": "app_api_public_py_str",
- "community": 132,
+ "community": 130,
"norm_label": "str"
},
{
@@ -19862,7 +19898,7 @@
"source_file": "app/api/public.py",
"source_location": "L43",
"id": "api_public_build_user_info_payload",
- "community": 132,
+ "community": 130,
"norm_label": "_build_user_info_payload()"
},
{
@@ -19871,7 +19907,7 @@
"source_file": "app/api/public.py",
"source_location": "L59",
"id": "api_public_jwt_user_payload",
- "community": 132,
+ "community": 130,
"norm_label": "_jwt_user_payload()"
},
{
@@ -19880,7 +19916,7 @@
"source_file": "app/api/public.py",
"source_location": "L72",
"id": "api_public_web_login_rsa_public_key",
- "community": 132,
+ "community": 130,
"norm_label": "web_login_rsa_public_key()"
},
{
@@ -19889,7 +19925,7 @@
"source_file": "app/api/public.py",
"source_location": "L79",
"id": "api_public_web_login",
- "community": 132,
+ "community": 130,
"norm_label": "web_login()"
},
{
@@ -19898,7 +19934,7 @@
"source_file": "app/api/public.py",
"source_location": "L79",
"id": "app_api_public_py_request",
- "community": 132,
+ "community": 130,
"norm_label": "request"
},
{
@@ -19907,7 +19943,7 @@
"source_file": "app/api/public.py",
"source_location": "L79",
"id": "app_api_public_py_session",
- "community": 132,
+ "community": 130,
"norm_label": "session"
},
{
@@ -19916,7 +19952,7 @@
"source_file": "app/api/public.py",
"source_location": "L137",
"id": "api_public_refresh_token",
- "community": 132,
+ "community": 130,
"norm_label": "refresh_token()"
},
{
@@ -19925,7 +19961,7 @@
"source_file": "app/api/public.py",
"source_location": "L199",
"id": "api_public_logout",
- "community": 132,
+ "community": 26,
"norm_label": "logout()"
},
{
@@ -19934,7 +19970,7 @@
"source_file": "app/api/public.py",
"source_location": "L218",
"id": "api_public_get_current_user_profile",
- "community": 132,
+ "community": 130,
"norm_label": "get_current_user_profile()"
},
{
@@ -19943,7 +19979,7 @@
"source_file": "app/api/public.py",
"source_location": "L251",
"id": "api_public_get_web_auth_menu_codes",
- "community": 132,
+ "community": 130,
"norm_label": "get_web_auth_menu_codes()"
},
{
@@ -19961,7 +19997,7 @@
"source_file": "app/api/public.py",
"source_location": "L1",
"id": "api_public_rationale_1",
- "community": 132,
+ "community": 130,
"norm_label": "\u516c\u5171\u63a5\u53e3(web \u767b\u5f55\u3001\u5237\u65b0 token\u3001\u767b\u51fa;\u7528\u6237\u6a21\u578b\u5bf9\u9f50 docs/sql/shanxia2.0.sql \u57fa\u7ebf)"
},
{
@@ -19970,7 +20006,7 @@
"source_file": "app/api/public.py",
"source_location": "L44",
"id": "api_public_rationale_44",
- "community": 132,
+ "community": 130,
"norm_label": "\u4e0e web-admin `userinfo` \u5b57\u6bb5\u7ea6\u5b9a\u4e00\u81f4\u3002"
},
{
@@ -19979,7 +20015,7 @@
"source_file": "app/api/public.py",
"source_location": "L73",
"id": "api_public_rationale_73",
- "community": 132,
+ "community": 130,
"norm_label": "web \u7aef\u767b\u5f55\u7528 rsa \u516c\u94a5(pkcs#1 v1.5,\u4e0e jsencrypt \u4e00\u81f4)"
},
{
@@ -19988,7 +20024,7 @@
"source_file": "app/api/public.py",
"source_location": "L84",
"id": "api_public_rationale_84",
- "community": 132,
+ "community": 130,
"norm_label": "web \u7aef\u767b\u5f55:\u8d26\u53f7\u4e3a sys_user.user_no,\u5bc6\u7801\u4e3a sys_user.password(bcrypt)\u3002"
},
{
@@ -19997,7 +20033,7 @@
"source_file": "app/api/public.py",
"source_location": "L200",
"id": "api_public_rationale_200",
- "community": 132,
+ "community": 26,
"norm_label": "\u767b\u51fa:\u540a\u9500 redis \u4f1a\u8bdd(\u82e5\u5df2\u914d\u7f6e redis_host)\u3002"
},
{
@@ -20006,7 +20042,7 @@
"source_file": "app/api/public.py",
"source_location": "L219",
"id": "api_public_rationale_219",
- "community": 132,
+ "community": 130,
"norm_label": "\u83b7\u53d6\u5f53\u524d\u7528\u6237\u4fe1\u606f(\u4e0e sys_user \u5b57\u6bb5\u5bf9\u5e94)\u3002"
},
{
@@ -20015,7 +20051,7 @@
"source_file": "app/api/public.py",
"source_location": "L252",
"id": "api_public_rationale_252",
- "community": 132,
+ "community": 130,
"norm_label": "\u83b7\u53d6\u5f53\u524d\u7528\u6237\u83dc\u5355\u6743\u9650\u6807\u8bc6(sys_menu.perms,\u7ecf\u89d2\u8272\u7ee7\u627f)\u3002"
},
{
@@ -20033,7 +20069,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L1",
"id": "app_api_monitor_py",
- "community": 36,
+ "community": 99,
"norm_label": "monitor.py"
},
{
@@ -20042,7 +20078,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L16",
"id": "api_monitor_user_info",
- "community": 36,
+ "community": 99,
"norm_label": "_user_info()"
},
{
@@ -20051,7 +20087,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L28",
"id": "api_monitor_operlog_list",
- "community": 36,
+ "community": 99,
"norm_label": "operlog_list()"
},
{
@@ -20060,7 +20096,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L28",
"id": "operloglistbody",
- "community": 36,
+ "community": 146,
"norm_label": "operloglistbody"
},
{
@@ -20069,7 +20105,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L28",
"id": "app_api_monitor_py_session",
- "community": 36,
+ "community": 99,
"norm_label": "session"
},
{
@@ -20078,7 +20114,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L67",
"id": "api_monitor_operlog_detail",
- "community": 36,
+ "community": 99,
"norm_label": "operlog_detail()"
},
{
@@ -20087,7 +20123,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L67",
"id": "operlogdetailbody",
- "community": 36,
+ "community": 146,
"norm_label": "operlogdetailbody"
},
{
@@ -20096,7 +20132,7 @@
"source_file": "app/api/monitor.py",
"source_location": "L33",
"id": "api_monitor_rationale_33",
- "community": 36,
+ "community": 99,
"norm_label": "\u64cd\u4f5c\u65e5\u5fd7\u5206\u9875\u5217\u8868(\u57fa\u4e8e api \u8bf7\u6c42\u65e5\u5fd7\u9002\u914d ruoyi operlog \u7ed3\u6784)"
},
{
@@ -20105,7 +20141,7 @@
"source_file": "app/api/crm_contract_sub_routes.py",
"source_location": "L1",
"id": "app_api_crm_contract_sub_routes_py",
- "community": 86,
+ "community": 16,
"norm_label": "crm_contract_sub_routes.py"
},
{
@@ -20114,7 +20150,7 @@
"source_file": "app/api/crm_contract_sub_routes.py",
"source_location": "L68",
"id": "api_crm_contract_sub_routes_register_contract_sub_routes",
- "community": 86,
+ "community": 16,
"norm_label": "register_contract_sub_routes()"
},
{
@@ -20123,7 +20159,7 @@
"source_file": "app/api/crm_contract_sub_routes.py",
"source_location": "L1",
"id": "api_crm_contract_sub_routes_rationale_1",
- "community": 86,
+ "community": 16,
"norm_label": "crm \u5408\u540c\u5b50\u6a21\u5757\u8def\u7531 \u2014 \u53d8\u66f4/\u6a21\u677f/\u5ba1\u6279\u72ec\u7acb\u9875"
},
{
@@ -20445,7 +20481,7 @@
"label": "product_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L853",
+ "source_location": "L847",
"id": "api_crm_product_export",
"community": 3,
"norm_label": "product_export()"
@@ -20454,16 +20490,16 @@
"label": "product_import_template()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L887",
+ "source_location": "L881",
"id": "api_crm_product_import_template",
- "community": 3,
+ "community": 46,
"norm_label": "product_import_template()"
},
{
"label": "customer_transfer()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L934",
+ "source_location": "L925",
"id": "api_crm_customer_transfer",
"community": 3,
"norm_label": "customer_transfer()"
@@ -20472,7 +20508,7 @@
"label": "customer_into_pool()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L960",
+ "source_location": "L951",
"id": "api_crm_customer_into_pool",
"community": 3,
"norm_label": "customer_into_pool()"
@@ -20481,7 +20517,7 @@
"label": "customer_deal()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L985",
+ "source_location": "L976",
"id": "api_crm_customer_deal",
"community": 3,
"norm_label": "customer_deal()"
@@ -20490,7 +20526,7 @@
"label": "str",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L985",
+ "source_location": "L976",
"id": "app_api_crm_py_str",
"community": 2,
"norm_label": "str"
@@ -20499,7 +20535,7 @@
"label": "customer_check_duplicate()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1014",
+ "source_location": "L1005",
"id": "api_crm_customer_check_duplicate",
"community": 3,
"norm_label": "customer_check_duplicate()"
@@ -20508,7 +20544,7 @@
"label": "customer_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1037",
+ "source_location": "L1028",
"id": "api_crm_customer_export",
"community": 3,
"norm_label": "customer_export()"
@@ -20517,16 +20553,16 @@
"label": "customer_import_template()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1073",
+ "source_location": "L1064",
"id": "api_crm_customer_import_template",
- "community": 3,
+ "community": 46,
"norm_label": "customer_import_template()"
},
{
"label": "customer_mine()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1112",
+ "source_location": "L1103",
"id": "api_crm_customer_mine",
"community": 3,
"norm_label": "customer_mine()"
@@ -20535,7 +20571,7 @@
"label": "customer_to_follow()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1146",
+ "source_location": "L1137",
"id": "api_crm_customer_to_follow",
"community": 3,
"norm_label": "customer_to_follow()"
@@ -20544,7 +20580,7 @@
"label": "customer_key()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1180",
+ "source_location": "L1171",
"id": "api_crm_customer_key",
"community": 3,
"norm_label": "customer_key()"
@@ -20553,7 +20589,7 @@
"label": "customer_dealed()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1214",
+ "source_location": "L1205",
"id": "api_crm_customer_dealed",
"community": 3,
"norm_label": "customer_dealed()"
@@ -20562,7 +20598,7 @@
"label": "customer_week_new()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1246",
+ "source_location": "L1237",
"id": "api_crm_customer_week_new",
"community": 3,
"norm_label": "customer_week_new()"
@@ -20571,7 +20607,7 @@
"label": "customer_long_time_no_follow()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1278",
+ "source_location": "L1269",
"id": "api_crm_customer_long_time_no_follow",
"community": 3,
"norm_label": "customer_long_time_no_follow()"
@@ -20580,7 +20616,7 @@
"label": "customer_park_area_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1310",
+ "source_location": "L1301",
"id": "api_crm_customer_park_area_list",
"community": 3,
"norm_label": "customer_park_area_list()"
@@ -20589,7 +20625,7 @@
"label": "pool_customer_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1330",
+ "source_location": "L1321",
"id": "api_crm_pool_customer_list",
"community": 3,
"norm_label": "pool_customer_list()"
@@ -20598,7 +20634,7 @@
"label": "PoolCustomerListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1330",
+ "source_location": "L1321",
"id": "poolcustomerlistbody",
"community": 2,
"norm_label": "poolcustomerlistbody"
@@ -20607,7 +20643,7 @@
"label": "pool_customer_assign()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1362",
+ "source_location": "L1353",
"id": "api_crm_pool_customer_assign",
"community": 3,
"norm_label": "pool_customer_assign()"
@@ -20616,7 +20652,7 @@
"label": "PoolAssignBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1362",
+ "source_location": "L1353",
"id": "poolassignbody",
"community": 2,
"norm_label": "poolassignbody"
@@ -20625,7 +20661,7 @@
"label": "pool_customer_claim()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1381",
+ "source_location": "L1372",
"id": "api_crm_pool_customer_claim",
"community": 3,
"norm_label": "pool_customer_claim()"
@@ -20634,7 +20670,7 @@
"label": "PoolClaimBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1381",
+ "source_location": "L1372",
"id": "poolclaimbody",
"community": 2,
"norm_label": "poolclaimbody"
@@ -20643,7 +20679,7 @@
"label": "pool_record_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1399",
+ "source_location": "L1390",
"id": "api_crm_pool_record_list",
"community": 3,
"norm_label": "pool_record_list()"
@@ -20652,7 +20688,7 @@
"label": "PoolRecordListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1399",
+ "source_location": "L1390",
"id": "poolrecordlistbody",
"community": 2,
"norm_label": "poolrecordlistbody"
@@ -20661,7 +20697,7 @@
"label": "pool_record_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1429",
+ "source_location": "L1420",
"id": "api_crm_pool_record_detail",
"community": 3,
"norm_label": "pool_record_detail()"
@@ -20670,7 +20706,7 @@
"label": "PoolRecordDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1429",
+ "source_location": "L1420",
"id": "poolrecorddetailbody",
"community": 2,
"norm_label": "poolrecorddetailbody"
@@ -20679,7 +20715,7 @@
"label": "contact_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1451",
+ "source_location": "L1442",
"id": "api_crm_contact_list",
"community": 3,
"norm_label": "contact_list()"
@@ -20688,7 +20724,7 @@
"label": "ContactListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1451",
+ "source_location": "L1442",
"id": "contactlistbody",
"community": 2,
"norm_label": "contactlistbody"
@@ -20697,7 +20733,7 @@
"label": "contact_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1487",
+ "source_location": "L1478",
"id": "api_crm_contact_detail",
"community": 3,
"norm_label": "contact_detail()"
@@ -20706,7 +20742,7 @@
"label": "contact_by_customer()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1511",
+ "source_location": "L1502",
"id": "api_crm_contact_by_customer",
"community": 3,
"norm_label": "contact_by_customer()"
@@ -20715,7 +20751,7 @@
"label": "contact_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1532",
+ "source_location": "L1523",
"id": "api_crm_contact_add",
"community": 3,
"norm_label": "contact_add()"
@@ -20724,7 +20760,7 @@
"label": "ContactCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1532",
+ "source_location": "L1523",
"id": "contactcreatebody",
"community": 2,
"norm_label": "contactcreatebody"
@@ -20733,7 +20769,7 @@
"label": "contact_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1555",
+ "source_location": "L1546",
"id": "api_crm_contact_update",
"community": 3,
"norm_label": "contact_update()"
@@ -20742,7 +20778,7 @@
"label": "ContactUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1555",
+ "source_location": "L1546",
"id": "contactupdatebody",
"community": 2,
"norm_label": "contactupdatebody"
@@ -20751,7 +20787,7 @@
"label": "contact_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1576",
+ "source_location": "L1567",
"id": "api_crm_contact_delete",
"community": 3,
"norm_label": "contact_delete()"
@@ -20760,7 +20796,7 @@
"label": "ContactDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1576",
+ "source_location": "L1567",
"id": "contactdeletebody",
"community": 2,
"norm_label": "contactdeletebody"
@@ -20769,7 +20805,7 @@
"label": "contact_set_primary()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1596",
+ "source_location": "L1587",
"id": "api_crm_contact_set_primary",
"community": 3,
"norm_label": "contact_set_primary()"
@@ -20778,7 +20814,7 @@
"label": "contact_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1618",
+ "source_location": "L1609",
"id": "api_crm_contact_export",
"community": 3,
"norm_label": "contact_export()"
@@ -20787,7 +20823,7 @@
"label": "contact_decision()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1648",
+ "source_location": "L1639",
"id": "api_crm_contact_decision",
"community": 3,
"norm_label": "contact_decision()"
@@ -20796,7 +20832,7 @@
"label": "contact_primary()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1679",
+ "source_location": "L1670",
"id": "api_crm_contact_primary",
"community": 3,
"norm_label": "contact_primary()"
@@ -20805,7 +20841,7 @@
"label": "contact_birthday()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1710",
+ "source_location": "L1701",
"id": "api_crm_contact_birthday",
"community": 3,
"norm_label": "contact_birthday()"
@@ -20814,7 +20850,7 @@
"label": "follow_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1744",
+ "source_location": "L1735",
"id": "api_crm_follow_list",
"community": 3,
"norm_label": "follow_list()"
@@ -20823,7 +20859,7 @@
"label": "FollowListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1744",
+ "source_location": "L1735",
"id": "followlistbody",
"community": 2,
"norm_label": "followlistbody"
@@ -20832,7 +20868,7 @@
"label": "follow_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1776",
+ "source_location": "L1767",
"id": "api_crm_follow_detail",
"community": 3,
"norm_label": "follow_detail()"
@@ -20841,7 +20877,7 @@
"label": "follow_by_customer()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1802",
+ "source_location": "L1793",
"id": "api_crm_follow_by_customer",
"community": 3,
"norm_label": "follow_by_customer()"
@@ -20850,7 +20886,7 @@
"label": "follow_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1823",
+ "source_location": "L1814",
"id": "api_crm_follow_add",
"community": 3,
"norm_label": "follow_add()"
@@ -20859,7 +20895,7 @@
"label": "FollowCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1823",
+ "source_location": "L1814",
"id": "followcreatebody",
"community": 2,
"norm_label": "followcreatebody"
@@ -20868,7 +20904,7 @@
"label": "follow_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1847",
+ "source_location": "L1838",
"id": "api_crm_follow_update",
"community": 3,
"norm_label": "follow_update()"
@@ -20877,7 +20913,7 @@
"label": "FollowUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1847",
+ "source_location": "L1838",
"id": "followupdatebody",
"community": 2,
"norm_label": "followupdatebody"
@@ -20886,7 +20922,7 @@
"label": "follow_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1866",
+ "source_location": "L1857",
"id": "api_crm_follow_delete",
"community": 3,
"norm_label": "follow_delete()"
@@ -20895,7 +20931,7 @@
"label": "FollowDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1866",
+ "source_location": "L1857",
"id": "followdeletebody",
"community": 2,
"norm_label": "followdeletebody"
@@ -20904,7 +20940,7 @@
"label": "follow_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1883",
+ "source_location": "L1874",
"id": "api_crm_follow_export",
"community": 3,
"norm_label": "follow_export()"
@@ -20913,7 +20949,7 @@
"label": "pool_rule_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1916",
+ "source_location": "L1907",
"id": "api_crm_pool_rule_list",
"community": 3,
"norm_label": "pool_rule_list()"
@@ -20922,7 +20958,7 @@
"label": "PoolRuleListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1916",
+ "source_location": "L1907",
"id": "poolrulelistbody",
"community": 2,
"norm_label": "poolrulelistbody"
@@ -20931,7 +20967,7 @@
"label": "pool_rule_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1947",
+ "source_location": "L1938",
"id": "api_crm_pool_rule_detail",
"community": 3,
"norm_label": "pool_rule_detail()"
@@ -20940,7 +20976,7 @@
"label": "PoolRuleDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1947",
+ "source_location": "L1938",
"id": "poolruledetailbody",
"community": 2,
"norm_label": "poolruledetailbody"
@@ -20949,7 +20985,7 @@
"label": "pool_rule_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1968",
+ "source_location": "L1959",
"id": "api_crm_pool_rule_add",
"community": 3,
"norm_label": "pool_rule_add()"
@@ -20958,7 +20994,7 @@
"label": "PoolRuleAddBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1968",
+ "source_location": "L1959",
"id": "poolruleaddbody",
"community": 2,
"norm_label": "poolruleaddbody"
@@ -20967,7 +21003,7 @@
"label": "pool_rule_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1995",
+ "source_location": "L1986",
"id": "api_crm_pool_rule_update",
"community": 3,
"norm_label": "pool_rule_update()"
@@ -20976,7 +21012,7 @@
"label": "PoolRuleUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L1995",
+ "source_location": "L1986",
"id": "poolruleupdatebody",
"community": 2,
"norm_label": "poolruleupdatebody"
@@ -20985,7 +21021,7 @@
"label": "pool_rule_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2024",
+ "source_location": "L2015",
"id": "api_crm_pool_rule_delete",
"community": 3,
"norm_label": "pool_rule_delete()"
@@ -20994,7 +21030,7 @@
"label": "PoolRuleDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2024",
+ "source_location": "L2015",
"id": "poolruledeletebody",
"community": 2,
"norm_label": "poolruledeletebody"
@@ -21003,7 +21039,7 @@
"label": "pool_rule_update_status()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2041",
+ "source_location": "L2032",
"id": "api_crm_pool_rule_update_status",
"community": 3,
"norm_label": "pool_rule_update_status()"
@@ -21012,7 +21048,7 @@
"label": "PoolRuleUpdateStatusBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2041",
+ "source_location": "L2032",
"id": "poolruleupdatestatusbody",
"community": 2,
"norm_label": "poolruleupdatestatusbody"
@@ -21021,7 +21057,7 @@
"label": "pool_rule_execute()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2061",
+ "source_location": "L2052",
"id": "api_crm_pool_rule_execute",
"community": 3,
"norm_label": "pool_rule_execute()"
@@ -21030,7 +21066,7 @@
"label": "PoolRuleExecuteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2061",
+ "source_location": "L2052",
"id": "poolruleexecutebody",
"community": 2,
"norm_label": "poolruleexecutebody"
@@ -21039,7 +21075,7 @@
"label": "statistics_overview()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2080",
+ "source_location": "L2071",
"id": "api_crm_statistics_overview",
"community": 3,
"norm_label": "statistics_overview()"
@@ -21048,7 +21084,7 @@
"label": "StatisticsBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2080",
+ "source_location": "L2071",
"id": "statisticsbody",
"community": 2,
"norm_label": "statisticsbody"
@@ -21057,7 +21093,7 @@
"label": "statistics_source()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2100",
+ "source_location": "L2091",
"id": "api_crm_statistics_source",
"community": 3,
"norm_label": "statistics_source()"
@@ -21066,7 +21102,7 @@
"label": "statistics_level()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2118",
+ "source_location": "L2109",
"id": "api_crm_statistics_level",
"community": 3,
"norm_label": "statistics_level()"
@@ -21075,7 +21111,7 @@
"label": "statistics_industry()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2136",
+ "source_location": "L2127",
"id": "api_crm_statistics_industry",
"community": 3,
"norm_label": "statistics_industry()"
@@ -21084,7 +21120,7 @@
"label": "statistics_trend()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2154",
+ "source_location": "L2145",
"id": "api_crm_statistics_trend",
"community": 3,
"norm_label": "statistics_trend()"
@@ -21093,7 +21129,7 @@
"label": "statistics_owner()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2177",
+ "source_location": "L2168",
"id": "api_crm_statistics_owner",
"community": 3,
"norm_label": "statistics_owner()"
@@ -21102,7 +21138,7 @@
"label": "statistics_follow()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2195",
+ "source_location": "L2186",
"id": "api_crm_statistics_follow",
"community": 3,
"norm_label": "statistics_follow()"
@@ -21111,7 +21147,7 @@
"label": "_opp_list_kwargs()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2220",
+ "source_location": "L2211",
"id": "api_crm_opp_list_kwargs",
"community": 3,
"norm_label": "_opp_list_kwargs()"
@@ -21120,7 +21156,7 @@
"label": "OpportunityListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2220",
+ "source_location": "L2211",
"id": "opportunitylistbody",
"community": 2,
"norm_label": "opportunitylistbody"
@@ -21129,7 +21165,7 @@
"label": "opportunity_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2249",
+ "source_location": "L2240",
"id": "api_crm_opportunity_list",
"community": 3,
"norm_label": "opportunity_list()"
@@ -21138,7 +21174,7 @@
"label": "opportunity_mine_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2282",
+ "source_location": "L2273",
"id": "api_crm_opportunity_mine_list",
"community": 3,
"norm_label": "opportunity_mine_list()"
@@ -21147,7 +21183,7 @@
"label": "opportunity_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2315",
+ "source_location": "L2306",
"id": "api_crm_opportunity_detail",
"community": 3,
"norm_label": "opportunity_detail()"
@@ -21156,7 +21192,7 @@
"label": "OpportunityDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2315",
+ "source_location": "L2306",
"id": "opportunitydetailbody",
"community": 2,
"norm_label": "opportunitydetailbody"
@@ -21165,7 +21201,7 @@
"label": "opportunity_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2345",
+ "source_location": "L2336",
"id": "api_crm_opportunity_add",
"community": 3,
"norm_label": "opportunity_add()"
@@ -21174,7 +21210,7 @@
"label": "OpportunityCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2345",
+ "source_location": "L2336",
"id": "opportunitycreatebody",
"community": 2,
"norm_label": "opportunitycreatebody"
@@ -21183,7 +21219,7 @@
"label": "opportunity_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2369",
+ "source_location": "L2360",
"id": "api_crm_opportunity_update",
"community": 3,
"norm_label": "opportunity_update()"
@@ -21192,7 +21228,7 @@
"label": "OpportunityUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2369",
+ "source_location": "L2360",
"id": "opportunityupdatebody",
"community": 2,
"norm_label": "opportunityupdatebody"
@@ -21201,7 +21237,7 @@
"label": "opportunity_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2390",
+ "source_location": "L2381",
"id": "api_crm_opportunity_delete",
"community": 3,
"norm_label": "opportunity_delete()"
@@ -21210,7 +21246,7 @@
"label": "OpportunityDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2390",
+ "source_location": "L2381",
"id": "opportunitydeletebody",
"community": 2,
"norm_label": "opportunitydeletebody"
@@ -21219,7 +21255,7 @@
"label": "opportunity_assign()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2411",
+ "source_location": "L2402",
"id": "api_crm_opportunity_assign",
"community": 3,
"norm_label": "opportunity_assign()"
@@ -21228,7 +21264,7 @@
"label": "OpportunityAssignBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2411",
+ "source_location": "L2402",
"id": "opportunityassignbody",
"community": 2,
"norm_label": "opportunityassignbody"
@@ -21237,7 +21273,7 @@
"label": "opportunity_change_stage()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2438",
+ "source_location": "L2429",
"id": "api_crm_opportunity_change_stage",
"community": 3,
"norm_label": "opportunity_change_stage()"
@@ -21246,7 +21282,7 @@
"label": "OpportunityChangeStageBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2438",
+ "source_location": "L2429",
"id": "opportunitychangestagebody",
"community": 2,
"norm_label": "opportunitychangestagebody"
@@ -21255,7 +21291,7 @@
"label": "opportunity_mark_won()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2468",
+ "source_location": "L2459",
"id": "api_crm_opportunity_mark_won",
"community": 3,
"norm_label": "opportunity_mark_won()"
@@ -21264,7 +21300,7 @@
"label": "OpportunityMarkWonBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2468",
+ "source_location": "L2459",
"id": "opportunitymarkwonbody",
"community": 2,
"norm_label": "opportunitymarkwonbody"
@@ -21273,7 +21309,7 @@
"label": "opportunity_mark_lost()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2496",
+ "source_location": "L2487",
"id": "api_crm_opportunity_mark_lost",
"community": 3,
"norm_label": "opportunity_mark_lost()"
@@ -21282,7 +21318,7 @@
"label": "OpportunityMarkLostBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2496",
+ "source_location": "L2487",
"id": "opportunitymarklostbody",
"community": 2,
"norm_label": "opportunitymarklostbody"
@@ -21291,7 +21327,7 @@
"label": "opportunity_batch_update_stage()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2525",
+ "source_location": "L2516",
"id": "api_crm_opportunity_batch_update_stage",
"community": 3,
"norm_label": "opportunity_batch_update_stage()"
@@ -21300,7 +21336,7 @@
"label": "OpportunityBatchUpdateStageBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2525",
+ "source_location": "L2516",
"id": "opportunitybatchupdatestagebody",
"community": 2,
"norm_label": "opportunitybatchupdatestagebody"
@@ -21309,7 +21345,7 @@
"label": "opportunity_batch_update_expect_date()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2554",
+ "source_location": "L2545",
"id": "api_crm_opportunity_batch_update_expect_date",
"community": 3,
"norm_label": "opportunity_batch_update_expect_date()"
@@ -21318,7 +21354,7 @@
"label": "OpportunityBatchUpdateExpectDateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2554",
+ "source_location": "L2545",
"id": "opportunitybatchupdateexpectdatebody",
"community": 2,
"norm_label": "opportunitybatchupdateexpectdatebody"
@@ -21327,7 +21363,7 @@
"label": "opportunity_stage_log_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2582",
+ "source_location": "L2573",
"id": "api_crm_opportunity_stage_log_list",
"community": 3,
"norm_label": "opportunity_stage_log_list()"
@@ -21336,7 +21372,7 @@
"label": "OpportunityStageLogListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2582",
+ "source_location": "L2573",
"id": "opportunitystageloglistbody",
"community": 2,
"norm_label": "opportunitystageloglistbody"
@@ -21345,7 +21381,7 @@
"label": "opportunity_kanban()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2600",
+ "source_location": "L2591",
"id": "api_crm_opportunity_kanban",
"community": 3,
"norm_label": "opportunity_kanban()"
@@ -21354,7 +21390,7 @@
"label": "OpportunityKanbanBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2600",
+ "source_location": "L2591",
"id": "opportunitykanbanbody",
"community": 2,
"norm_label": "opportunitykanbanbody"
@@ -21363,7 +21399,7 @@
"label": "opportunity_statistics_overview()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2631",
+ "source_location": "L2622",
"id": "api_crm_opportunity_statistics_overview",
"community": 3,
"norm_label": "opportunity_statistics_overview()"
@@ -21372,7 +21408,7 @@
"label": "OpportunityStatisticsBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2631",
+ "source_location": "L2622",
"id": "opportunitystatisticsbody",
"community": 2,
"norm_label": "opportunitystatisticsbody"
@@ -21381,7 +21417,7 @@
"label": "opportunity_statistics_stage()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2657",
+ "source_location": "L2648",
"id": "api_crm_opportunity_statistics_stage",
"community": 3,
"norm_label": "opportunity_statistics_stage()"
@@ -21390,7 +21426,7 @@
"label": "opportunity_statistics_win_rate()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2673",
+ "source_location": "L2664",
"id": "api_crm_opportunity_statistics_win_rate",
"community": 3,
"norm_label": "opportunity_statistics_win_rate()"
@@ -21399,7 +21435,7 @@
"label": "opportunity_statistics_owner()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2699",
+ "source_location": "L2690",
"id": "api_crm_opportunity_statistics_owner",
"community": 3,
"norm_label": "opportunity_statistics_owner()"
@@ -21408,7 +21444,7 @@
"label": "opportunity_statistics_funnel()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2724",
+ "source_location": "L2715",
"id": "api_crm_opportunity_statistics_funnel",
"community": 3,
"norm_label": "opportunity_statistics_funnel()"
@@ -21417,7 +21453,7 @@
"label": "opportunity_follow_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2750",
+ "source_location": "L2741",
"id": "api_crm_opportunity_follow_list",
"community": 3,
"norm_label": "opportunity_follow_list()"
@@ -21426,7 +21462,7 @@
"label": "OpportunityFollowListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2750",
+ "source_location": "L2741",
"id": "opportunityfollowlistbody",
"community": 2,
"norm_label": "opportunityfollowlistbody"
@@ -21435,7 +21471,7 @@
"label": "opportunity_follow_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2782",
+ "source_location": "L2773",
"id": "api_crm_opportunity_follow_add",
"community": 3,
"norm_label": "opportunity_follow_add()"
@@ -21444,7 +21480,7 @@
"label": "OpportunityFollowCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2782",
+ "source_location": "L2773",
"id": "opportunityfollowcreatebody",
"community": 2,
"norm_label": "opportunityfollowcreatebody"
@@ -21453,7 +21489,7 @@
"label": "opportunity_follow_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2807",
+ "source_location": "L2798",
"id": "api_crm_opportunity_follow_update",
"community": 3,
"norm_label": "opportunity_follow_update()"
@@ -21462,7 +21498,7 @@
"label": "OpportunityFollowUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2807",
+ "source_location": "L2798",
"id": "opportunityfollowupdatebody",
"community": 2,
"norm_label": "opportunityfollowupdatebody"
@@ -21471,7 +21507,7 @@
"label": "opportunity_follow_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2830",
+ "source_location": "L2821",
"id": "api_crm_opportunity_follow_delete",
"community": 3,
"norm_label": "opportunity_follow_delete()"
@@ -21480,7 +21516,7 @@
"label": "OpportunityFollowDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2830",
+ "source_location": "L2821",
"id": "opportunityfollowdeletebody",
"community": 2,
"norm_label": "opportunityfollowdeletebody"
@@ -21489,7 +21525,7 @@
"label": "opportunity_follow_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2854",
+ "source_location": "L2845",
"id": "api_crm_opportunity_follow_detail",
"community": 3,
"norm_label": "opportunity_follow_detail()"
@@ -21498,7 +21534,7 @@
"label": "OpportunityFollowDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2854",
+ "source_location": "L2845",
"id": "opportunityfollowdetailbody",
"community": 2,
"norm_label": "opportunityfollowdetailbody"
@@ -21507,7 +21543,7 @@
"label": "opportunity_product_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2874",
+ "source_location": "L2865",
"id": "api_crm_opportunity_product_list",
"community": 3,
"norm_label": "opportunity_product_list()"
@@ -21516,7 +21552,7 @@
"label": "OpportunityProductListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2874",
+ "source_location": "L2865",
"id": "opportunityproductlistbody",
"community": 2,
"norm_label": "opportunityproductlistbody"
@@ -21525,7 +21561,7 @@
"label": "opportunity_product_list_by_opportunity()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2907",
+ "source_location": "L2898",
"id": "api_crm_opportunity_product_list_by_opportunity",
"community": 3,
"norm_label": "opportunity_product_list_by_opportunity()"
@@ -21534,7 +21570,7 @@
"label": "OpportunityProductByOpportunityBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2907",
+ "source_location": "L2898",
"id": "opportunityproductbyopportunitybody",
"community": 2,
"norm_label": "opportunityproductbyopportunitybody"
@@ -21543,7 +21579,7 @@
"label": "opportunity_product_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2928",
+ "source_location": "L2919",
"id": "api_crm_opportunity_product_add",
"community": 3,
"norm_label": "opportunity_product_add()"
@@ -21552,7 +21588,7 @@
"label": "OpportunityProductCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2928",
+ "source_location": "L2919",
"id": "opportunityproductcreatebody",
"community": 2,
"norm_label": "opportunityproductcreatebody"
@@ -21561,7 +21597,7 @@
"label": "opportunity_product_batch_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2953",
+ "source_location": "L2944",
"id": "api_crm_opportunity_product_batch_add",
"community": 3,
"norm_label": "opportunity_product_batch_add()"
@@ -21570,7 +21606,7 @@
"label": "OpportunityProductBatchAddBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2953",
+ "source_location": "L2944",
"id": "opportunityproductbatchaddbody",
"community": 2,
"norm_label": "opportunityproductbatchaddbody"
@@ -21579,7 +21615,7 @@
"label": "opportunity_product_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2983",
+ "source_location": "L2974",
"id": "api_crm_opportunity_product_update",
"community": 3,
"norm_label": "opportunity_product_update()"
@@ -21588,7 +21624,7 @@
"label": "OpportunityProductUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L2983",
+ "source_location": "L2974",
"id": "opportunityproductupdatebody",
"community": 2,
"norm_label": "opportunityproductupdatebody"
@@ -21597,7 +21633,7 @@
"label": "opportunity_product_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3006",
+ "source_location": "L2997",
"id": "api_crm_opportunity_product_delete",
"community": 3,
"norm_label": "opportunity_product_delete()"
@@ -21606,7 +21642,7 @@
"label": "OpportunityProductDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3006",
+ "source_location": "L2997",
"id": "opportunityproductdeletebody",
"community": 2,
"norm_label": "opportunityproductdeletebody"
@@ -21615,7 +21651,7 @@
"label": "opportunity_product_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3027",
+ "source_location": "L3018",
"id": "api_crm_opportunity_product_detail",
"community": 3,
"norm_label": "opportunity_product_detail()"
@@ -21624,7 +21660,7 @@
"label": "OpportunityProductDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3027",
+ "source_location": "L3018",
"id": "opportunityproductdetailbody",
"community": 2,
"norm_label": "opportunityproductdetailbody"
@@ -21633,7 +21669,7 @@
"label": "opportunity_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3047",
+ "source_location": "L3038",
"id": "api_crm_opportunity_export",
"community": 3,
"norm_label": "opportunity_export()"
@@ -21642,16 +21678,16 @@
"label": "supplier_info_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3089",
+ "source_location": "L3080",
"id": "api_crm_supplier_info_list",
- "community": 4,
+ "community": 74,
"norm_label": "supplier_info_list()"
},
{
"label": "SupplierInfoListBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3089",
+ "source_location": "L3080",
"id": "supplierinfolistbody",
"community": 2,
"norm_label": "supplierinfolistbody"
@@ -21660,16 +21696,16 @@
"label": "supplier_info_list_all()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3124",
+ "source_location": "L3115",
"id": "api_crm_supplier_info_list_all",
- "community": 29,
+ "community": 1,
"norm_label": "supplier_info_list_all()"
},
{
"label": "SupplierInfoListAllBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3124",
+ "source_location": "L3115",
"id": "supplierinfolistallbody",
"community": 2,
"norm_label": "supplierinfolistallbody"
@@ -21678,16 +21714,16 @@
"label": "supplier_info_detail()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3149",
+ "source_location": "L3140",
"id": "api_crm_supplier_info_detail",
- "community": 1,
+ "community": 29,
"norm_label": "supplier_info_detail()"
},
{
"label": "SupplierInfoDetailBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3149",
+ "source_location": "L3140",
"id": "supplierinfodetailbody",
"community": 2,
"norm_label": "supplierinfodetailbody"
@@ -21696,16 +21732,16 @@
"label": "supplier_info_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3172",
+ "source_location": "L3163",
"id": "api_crm_supplier_info_add",
- "community": 4,
+ "community": 74,
"norm_label": "supplier_info_add()"
},
{
"label": "SupplierInfoCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3172",
+ "source_location": "L3163",
"id": "supplierinfocreatebody",
"community": 2,
"norm_label": "supplierinfocreatebody"
@@ -21714,16 +21750,16 @@
"label": "supplier_info_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3198",
+ "source_location": "L3189",
"id": "api_crm_supplier_info_update",
- "community": 1,
+ "community": 29,
"norm_label": "supplier_info_update()"
},
{
"label": "SupplierInfoUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3198",
+ "source_location": "L3189",
"id": "supplierinfoupdatebody",
"community": 2,
"norm_label": "supplierinfoupdatebody"
@@ -21732,16 +21768,16 @@
"label": "supplier_info_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3226",
+ "source_location": "L3217",
"id": "api_crm_supplier_info_delete",
- "community": 29,
+ "community": 66,
"norm_label": "supplier_info_delete()"
},
{
"label": "SupplierInfoDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3226",
+ "source_location": "L3217",
"id": "supplierinfodeletebody",
"community": 2,
"norm_label": "supplierinfodeletebody"
@@ -21750,16 +21786,16 @@
"label": "supplier_info_export()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3255",
+ "source_location": "L3246",
"id": "api_crm_supplier_info_export",
- "community": 29,
+ "community": 1,
"norm_label": "supplier_info_export()"
},
{
"label": "_invoice_info_by_customer_impl()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3292",
+ "source_location": "L3283",
"id": "api_crm_invoice_info_by_customer_impl",
"community": 3,
"norm_label": "_invoice_info_by_customer_impl()"
@@ -21768,7 +21804,7 @@
"label": "InvoiceInfoByCustomerBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3292",
+ "source_location": "L3283",
"id": "invoiceinfobycustomerbody",
"community": 2,
"norm_label": "invoiceinfobycustomerbody"
@@ -21777,16 +21813,16 @@
"label": "invoice_info_list()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3306",
+ "source_location": "L3297",
"id": "api_crm_invoice_info_list",
- "community": 4,
+ "community": 1,
"norm_label": "invoice_info_list()"
},
{
"label": "invoice_info_by_customer()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3321",
+ "source_location": "L3312",
"id": "api_crm_invoice_info_by_customer",
"community": 3,
"norm_label": "invoice_info_by_customer()"
@@ -21795,7 +21831,7 @@
"label": "invoice_info_add()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3336",
+ "source_location": "L3327",
"id": "api_crm_invoice_info_add",
"community": 3,
"norm_label": "invoice_info_add()"
@@ -21804,7 +21840,7 @@
"label": "InvoiceInfoCreateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3336",
+ "source_location": "L3327",
"id": "invoiceinfocreatebody",
"community": 2,
"norm_label": "invoiceinfocreatebody"
@@ -21813,7 +21849,7 @@
"label": "invoice_info_update()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3361",
+ "source_location": "L3352",
"id": "api_crm_invoice_info_update",
"community": 3,
"norm_label": "invoice_info_update()"
@@ -21822,7 +21858,7 @@
"label": "InvoiceInfoUpdateBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3361",
+ "source_location": "L3352",
"id": "invoiceinfoupdatebody",
"community": 2,
"norm_label": "invoiceinfoupdatebody"
@@ -21831,7 +21867,7 @@
"label": "invoice_info_delete()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3389",
+ "source_location": "L3380",
"id": "api_crm_invoice_info_delete",
"community": 3,
"norm_label": "invoice_info_delete()"
@@ -21840,7 +21876,7 @@
"label": "InvoiceInfoDeleteBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3389",
+ "source_location": "L3380",
"id": "invoiceinfodeletebody",
"community": 2,
"norm_label": "invoiceinfodeletebody"
@@ -21849,7 +21885,7 @@
"label": "invoice_info_set_default()",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3412",
+ "source_location": "L3403",
"id": "api_crm_invoice_info_set_default",
"community": 3,
"norm_label": "invoice_info_set_default()"
@@ -21858,7 +21894,7 @@
"label": "InvoiceInfoSetDefaultBody",
"file_type": "code",
"source_file": "app/api/crm.py",
- "source_location": "L3412",
+ "source_location": "L3403",
"id": "invoiceinfosetdefaultbody",
"community": 2,
"norm_label": "invoiceinfosetdefaultbody"
@@ -21867,7 +21903,7 @@
"label": "clue_list()",
"file_type": "code",
"source_file": "app/api/c