SET client_encoding = 'UTF8'; CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, username VARCHAR(255) UNIQUE, name VARCHAR(255), email VARCHAR(255), phone VARCHAR(255), role VARCHAR(50), password_hash VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP ); CREATE TABLE IF NOT EXISTS customers ( id SERIAL PRIMARY KEY, name VARCHAR(255), address VARCHAR(255), remark TEXT, contact_person VARCHAR(255), phone VARCHAR(255), email VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP ); CREATE TABLE IF NOT EXISTS projects ( id SERIAL PRIMARY KEY, name VARCHAR(255), project_code VARCHAR(255), customer_id INTEGER, project_manager_id INTEGER, contract_amount NUMERIC, status VARCHAR(50), location VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP ); -- 1. 插入用户数据 INSERT INTO users (username, name, email, phone, role, password_hash, created_at, updated_at) VALUES ('admin', '系统管理员', 'admin@yunhai.com', '13800000001', 'admin', '$2a$10$xyz', NOW(), NOW()), ('finance', '财务专员', 'finance@yunhai.com', '13800000002', 'finance', '$2a$10$xyz', NOW(), NOW()), ('manager', '项目经理', 'manager@yunhai.com', '13800000003', 'manager', '$2a$10$xyz', NOW(), NOW()), ('employee', '普通员工', 'employee@yunhai.com', '13800000004', 'employee', '$2a$10$xyz', NOW(), NOW()) ON CONFLICT (username) DO NOTHING; -- 2. 插入客户数据 INSERT INTO customers (name, address, remark, contact_person, phone, email, created_at, updated_at) VALUES ('老挝国家电力公司', '万象市', '大客户', 'Somphong', '020-11111111', 'edl@laos.com', NOW(), NOW()), ('万象基建集团', '万象市', '长期合作', 'Champa', '020-22222222', 'infra@laos.com', NOW(), NOW()), ('琅勃拉邦电力局', '琅勃拉邦', '', 'Keo', '020-33333333', 'lpq@laos.com', NOW(), NOW()); -- 3. 插入项目数据 (假设customer_id与上表对应) INSERT INTO projects (name, project_code, customer_id, project_manager_id, contract_amount, status, location, created_at, updated_at) VALUES ('万象22kV线路工程', 'P2026-001', 1, 3, 1500000, 'in_progress', '万象市赛塔尼县', NOW(), NOW()), ('琅勃拉邦变电站改造', 'P2026-002', 3, 3, 800000, 'planning', '琅勃拉邦', NOW(), NOW()), ('南塔电力抢修', 'P2026-003', 1, 3, 300000, 'completed', '南塔省', NOW(), NOW());