Files

99 lines
4.1 KiB
Python
Raw Permalink Normal View History

"""
临时脚本:为本地 DEV 环境填充测试数据
1. 创建 agents 表记录(dev-agent-001 主责 + dev-agent-002 协作)
2. 在 employees 表中插入带部门信息的测试员工(使搜索和组织架构树有数据)
运行后可删除。
"""
import asyncio
import sqlite3
import uuid
from datetime import datetime
DB_PATH = r"D:\资料\03-项目开发\wecom_it_smart_desk\backend\smartdesk.db"
# ============================================================================
# 测试员工数据(department 字段直接存部门名,非 JSON ID 数组,仅 DEV_MODE 使用)
# ============================================================================
TEST_EMPLOYEES = [
# (employee_id, name, department, corp_id)
("dev-user-001", "张三", "研发一部", "dev_corp"),
("dev-user-002", "王五", "人事部", "dev_corp"),
("dev-user-003", "赵六", "研发一部", "dev_corp"),
("dev-user-004", "钱七", "研发二部", "dev_corp"),
("dev-user-005", "孙八", "研发二部", "dev_corp"),
("dev-user-006", "周九", "产品部", "dev_corp"),
("dev-user-007", "吴十", "产品部", "dev_corp"),
("dev-user-008", "郑十一", "测试部", "dev_corp"),
("dev-user-009", "王芳", "测试部", "dev_corp"),
("dev-user-010", "李明", "运维部", "dev_corp"),
("dev-user-011", "陈静", "运维部", "dev_corp"),
("dev-user-012", "刘洋", "财务部", "dev_corp"),
("dev-agent-002", "陈静(协作坐席)", "IT支持组", "dev_corp"),
]
# ============================================================================
# Agent 记录(使 Mock 登录的 token 能通过 get_current_agent 认证)
# ============================================================================
TEST_AGENTS = [
("dev-agent-001", "李四(IT坐席)", "online", "agent"),
("dev-agent-002", "陈静(协作坐席)", "online", "agent"),
]
def seed():
conn = sqlite3.connect(DB_PATH)
c = conn.cursor()
# --- 1. 插入/更新 agents 表 ---
print("=== 写入 agents 表 ===")
for user_id, name, status, role in TEST_AGENTS:
# 先检查是否已存在
existing = c.execute("SELECT id FROM agents WHERE user_id = ?", (user_id,)).fetchone()
if existing:
c.execute(
"UPDATE agents SET name=?, status=?, role=? WHERE user_id=?",
(name, status, role, user_id),
)
print(f" 更新: {user_id} ({name})")
else:
agent_id = str(uuid.uuid4())
c.execute(
"""INSERT INTO agents (id, user_id, name, status, current_load, max_load, role, skill_tags, created_at, updated_at)
VALUES (?, ?, ?, ?, 0, 5, ?, '[]', ?, ?)""",
(agent_id, user_id, name, status, role, datetime.now(), datetime.now()),
)
print(f" 新增: {user_id} ({name})")
# --- 2. 插入/更新 employees 表 ---
print("\n=== 写入 employees 表 ===")
for emp_id, name, dept, corp_id in TEST_EMPLOYEES:
existing = c.execute(
"SELECT id FROM employees WHERE corp_id=? AND employee_id=?",
(corp_id, emp_id),
).fetchone()
if existing:
c.execute(
"UPDATE employees SET name=?, department=? WHERE corp_id=? AND employee_id=?",
(name, dept, corp_id, emp_id),
)
print(f" 更新: {emp_id} ({name}) — {dept}")
else:
emp_uuid = str(uuid.uuid4())
c.execute(
"""INSERT INTO employees
(id, corp_id, employee_id, name, department, position, mobile, email, avatar, status, it_level, it_level_source, notes, created_at, updated_at)
VALUES (?, ?, ?, ?, ?, '', '', '', '', 1, 'silver', 'system', '{}', ?, ?)""",
(emp_uuid, corp_id, emp_id, name, dept, datetime.now(), datetime.now()),
)
print(f" 新增: {emp_id} ({name}) — {dept}")
conn.commit()
conn.close()
print("\n✅ 测试数据写入完成!")
print(f" agents 表: {len(TEST_AGENTS)}")
print(f" employees 表: {len(TEST_EMPLOYEES)}")
if __name__ == "__main__":
seed()