feat(platform): close AI expense value loop

Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
This commit is contained in:
caoxiaozhu
2026-07-17 14:14:08 +08:00
parent 242d68c36f
commit 787bc3a481
507 changed files with 82072 additions and 6344 deletions

View File

@@ -59,6 +59,7 @@ def _seed_root_task(
)
manager = Employee(
id="employee-task-manager",
tenant_id=tenant_id,
employee_no="M-TASK-001",
name="李经理",
email="manager-task@example.com",
@@ -67,6 +68,7 @@ def _seed_root_task(
participants = [
Employee(
id=f"employee-task-participant-{index}",
tenant_id=tenant_id,
employee_no=f"M-TASK-{index + 1:03d}",
name=f"加签经理{index}",
email=f"participant-task-{index}@example.com",
@@ -76,6 +78,7 @@ def _seed_root_task(
]
employee = Employee(
id="employee-task-owner",
tenant_id=tenant_id,
employee_no="E-TASK-001",
name="张三",
email="owner-task@example.com",
@@ -84,6 +87,7 @@ def _seed_root_task(
occurred_at = datetime.now(UTC) - timedelta(hours=1)
claim = ExpenseClaim(
id="claim-task-001",
tenant_id=tenant_id,
claim_no="RE-TASK-001",
employee=employee,
employee_name=employee.name,
@@ -154,6 +158,7 @@ def test_queue_is_tenant_safe_and_admin_has_no_implicit_approval() -> None:
admin = Employee(
id="employee-task-admin",
tenant_id="tenant-approval-task",
employee_no="A-TASK-001",
name="平台管理员",
email="admin-task@example.com",