Initial commit: HR Performance System

- Database schema with 31 tables for 4-card system
- LLM API integration (Gemini, DeepSeek, OpenAI)
- Error handling system with modal component
- Connection test UI for LLM services
- Environment configuration files
- Complete database documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
donald
2025-12-03 23:34:13 +08:00
commit c24634f4b7
18 changed files with 8179 additions and 0 deletions

256
database/README.md Normal file
View File

@@ -0,0 +1,256 @@
# HR 績效評核系統 - 資料庫說明
## 資料庫連線資訊
```
DB_HOST: mysql.theaken.com
DB_PORT: 33306
DB_NAME: db_A102
DB_USER: A102
DB_PASSWORD: Bb123456
```
## 資料庫結構
本系統使用 MySQL 資料庫,包含以下主要模組:
### 一、基礎資料表 (5張)
- `hr_departments` - 部門組織架構
- `hr_job_levels` - 職級定義
- `hr_employees` - 員工資料
- `hr_system_roles` - 系統角色權限
- `hr_employee_roles` - 員工角色關聯
### 二、職能字典 (3張)
- `hr_competency_categories` - 職能分類
- `hr_competency_dictionary` - 職能字典
- `hr_competency_behaviors` - 職能行為指標
### 三、角色卡模組 (6張)
- `hr_role_cards` - 角色卡主表
- `hr_role_responsibilities` - 角色卡職責
- `hr_role_supervisees` - 角色卡督導對象
- `hr_role_collaborators` - 角色卡協作夥伴
- `hr_role_kra` - 角色卡KRA
- `hr_role_kpi` - 角色卡KPI
### 四、能力卡模組 (3張)
- `hr_competency_cards` - 能力卡主表
- `hr_competency_card_hard_skills` - 能力卡硬性能力
- `hr_competency_card_soft_skills` - 能力卡軟性能力
### 五、績效卡模組 (4張)
- `hr_review_cycles` - 評核週期設定
- `hr_performance_cards` - 績效卡主表
- `hr_performance_goals` - 績效卡目標評核
- `hr_performance_behaviors` - 績效卡行為評估
### 六、成長卡模組 (5張)
- `hr_growth_cards` - 成長卡主表
- `hr_growth_focus_areas` - 成長卡發展焦點
- `hr_growth_idp_goals` - 成長卡IDP目標
- `hr_growth_actions` - 成長卡行動計畫
- `hr_growth_tracking` - 成長卡追蹤紀錄
### 七、系統支援 (5張)
- `hr_approval_records` - 審批記錄
- `hr_system_settings` - 系統設定
- `hr_rating_thresholds` - 等級分界設定
- `hr_version_snapshots` - 版本快照
- `hr_audit_logs` - 操作日誌
**總計31張資料表**
## 安裝步驟
### 1. 建立資料庫結構
連線到 MySQL 伺服器後,執行以下命令:
```bash
mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < schema.sql
```
或使用 MySQL Workbench / phpMyAdmin 等工具匯入 [schema.sql](schema.sql)
### 2. 匯入初始資料
```bash
mysql -h mysql.theaken.com -P 33306 -u A102 -p db_A102 < seed_data.sql
```
或使用 MySQL Workbench / phpMyAdmin 等工具匯入 [seed_data.sql](seed_data.sql)
## 初始資料內容
執行 `seed_data.sql` 後會建立以下初始資料:
### 系統角色 (4個)
- ADMIN - 系統管理員
- HR - 人力資源
- MANAGER - 部門主管
- EMPLOYEE - 一般員工
### 職級 (9個)
- L1 助理專員 → L9 總經理
### 職能字典 (10個核心職能)
**通用職能 (5個)**
- CORE-001: 溝通協調
- CORE-002: 團隊合作
- CORE-003: 問題解決
- CORE-004: 執行力
- CORE-005: 學習成長
**管理職能 (5個)**
- MGMT-001: 策略思維
- MGMT-002: 團隊領導
- MGMT-003: 橫向整合力
- MGMT-004: 決策判斷
- MGMT-005: 人才培育
### 職能行為指標
每個職能都包含 L1-L5 共5個等級的行為指標描述
### 系統設定
- 目標權重70%
- 行為權重30%
- 預設語言:繁體中文
- 啟用季度評核
- IDP最大目標數4
### 等級分界
- A+: 90-100分 (建議10%)
- A: 80-89.99分 (建議22.5%)
- B+: 70-79.99分 (建議35%)
- B: 60-69.99分 (建議22.5%)
- C: 0-59.99分 (建議10%)
## 資料庫特性
### 字符集
- 使用 `utf8mb4_unicode_ci` 支援多語系與特殊字符
### 引擎
- 使用 `InnoDB` 引擎支援交易與外鍵約束
### 索引優化
- 已在常用查詢欄位建立索引
- 外鍵關聯已建立索引
### 資料完整性
- 使用外鍵約束確保資料關聯正確
- 設定適當的 `ON DELETE` 策略
## 開發建議
### 連線測試
```javascript
// Node.js 範例
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'mysql.theaken.com',
port: 33306,
user: 'A102',
password: 'Bb123456',
database: 'db_A102'
});
connection.connect((err) => {
if (err) {
console.error('連線失敗:', err);
return;
}
console.log('資料庫連線成功!');
});
```
### 常用查詢範例
#### 查詢員工及其部門資訊
```sql
SELECT
e.employee_no,
e.name_zh,
d.dept_name_zh,
l.level_name_zh
FROM hr_employees e
JOIN hr_departments d ON e.department_id = d.id
JOIN hr_job_levels l ON e.job_level_id = l.id
WHERE e.status = 'active';
```
#### 查詢職能字典完整資訊
```sql
SELECT
cd.competency_code,
cd.competency_name_zh,
cc.category_name_zh,
cb.level_num,
cb.behavior_description_zh
FROM hr_competency_dictionary cd
JOIN hr_competency_categories cc ON cd.category_id = cc.id
LEFT JOIN hr_competency_behaviors cb ON cd.id = cb.competency_id
WHERE cd.is_active = TRUE
ORDER BY cd.id, cb.level_num;
```
#### 查詢員工的角色卡資訊
```sql
SELECT
rc.card_code,
rc.role_name_zh,
e.name_zh AS employee_name,
d.dept_name_zh,
GROUP_CONCAT(rr.responsibility_zh SEPARATOR '; ') AS responsibilities
FROM hr_role_cards rc
JOIN hr_employees e ON rc.employee_id = e.id
JOIN hr_departments d ON rc.department_id = d.id
LEFT JOIN hr_role_responsibilities rr ON rc.id = rr.role_card_id
WHERE rc.status = 'approved'
GROUP BY rc.id;
```
## 維護建議
### 定期備份
```bash
# 完整備份
mysqldump -h mysql.theaken.com -P 33306 -u A102 -p db_A102 > backup_$(date +%Y%m%d).sql
# 僅備份結構
mysqldump -h mysql.theaken.com -P 33306 -u A102 -p --no-data db_A102 > schema_backup.sql
# 僅備份資料
mysqldump -h mysql.theaken.com -P 33306 -u A102 -p --no-create-info db_A102 > data_backup.sql
```
### 效能監控
- 定期檢查慢查詢日誌
- 監控資料表大小成長
- 定期執行 `OPTIMIZE TABLE` 優化資料表
### 擴充建議
- 職能字典可依需求新增專業職能
- 部門結構可依組織調整
- 評核週期需每年設定
## 注意事項
1. **密碼安全**: 請定期更換資料庫密碼
2. **權限管理**: 建議為不同環境建立不同的資料庫使用者
3. **資料保護**: 員工個資需遵守相關法規保護
4. **版本控制**: 資料庫結構變更需建立遷移腳本
5. **測試環境**: 建議另建測試資料庫進行開發測試
## 技術支援
如有任何資料庫相關問題,請聯繫系統管理員。
---
**最後更新**: 2025-12-03
**版本**: 1.0

581
database/schema.sql Normal file
View File

@@ -0,0 +1,581 @@
-- ============================================
-- HR 績效評核系統 - 資料庫結構
-- Database: db_A102
-- Version: 1.0
-- Created: 2025-12-03
-- ============================================
-- 使用資料庫
USE db_A102;
-- ============================================
-- 一、基礎資料表
-- ============================================
-- 1.1 組織架構表
CREATE TABLE IF NOT EXISTS hr_departments (
id INT AUTO_INCREMENT PRIMARY KEY,
dept_code VARCHAR(20) UNIQUE NOT NULL COMMENT '部門代碼',
dept_name_zh VARCHAR(100) NOT NULL COMMENT '部門名稱(中文)',
dept_name_en VARCHAR(100) COMMENT '部門名稱(英文)',
parent_dept_id INT COMMENT '上級部門ID',
dept_level INT DEFAULT 1 COMMENT '部門層級',
is_active BOOLEAN DEFAULT TRUE COMMENT '是否啟用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_parent (parent_dept_id),
INDEX idx_active (is_active),
FOREIGN KEY (parent_dept_id) REFERENCES hr_departments(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部門組織架構';
-- 1.2 職級表
CREATE TABLE IF NOT EXISTS hr_job_levels (
id INT AUTO_INCREMENT PRIMARY KEY,
level_code VARCHAR(20) UNIQUE NOT NULL COMMENT '職級代碼',
level_name_zh VARCHAR(50) NOT NULL COMMENT '職級名稱(中文)',
level_name_en VARCHAR(50) COMMENT '職級名稱(英文)',
level_order INT NOT NULL COMMENT '職級順序(數字越大級別越高)',
is_management BOOLEAN DEFAULT FALSE COMMENT '是否管理職',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_order (level_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='職級定義';
-- 1.3 人員表
CREATE TABLE IF NOT EXISTS hr_employees (
id INT AUTO_INCREMENT PRIMARY KEY,
employee_no VARCHAR(20) UNIQUE NOT NULL COMMENT '員工編號',
email VARCHAR(100) UNIQUE NOT NULL COMMENT '電子郵件',
name_zh VARCHAR(50) NOT NULL COMMENT '姓名(中文)',
name_en VARCHAR(50) COMMENT '姓名(英文)',
department_id INT NOT NULL COMMENT '部門ID',
job_level_id INT NOT NULL COMMENT '職級ID',
job_title_zh VARCHAR(100) COMMENT '職稱(中文)',
job_title_en VARCHAR(100) COMMENT '職稱(英文)',
supervisor_id INT COMMENT '直屬主管ID',
hire_date DATE COMMENT '到職日期',
status ENUM('active', 'inactive', 'resigned') DEFAULT 'active' COMMENT '員工狀態',
preferred_language ENUM('zh-TW', 'en-US') DEFAULT 'zh-TW' COMMENT '偏好語言',
password_hash VARCHAR(255) COMMENT '密碼雜湊',
last_login_at TIMESTAMP NULL COMMENT '最後登入時間',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_dept (department_id),
INDEX idx_supervisor (supervisor_id),
INDEX idx_status (status),
INDEX idx_email (email),
FOREIGN KEY (department_id) REFERENCES hr_departments(id),
FOREIGN KEY (job_level_id) REFERENCES hr_job_levels(id),
FOREIGN KEY (supervisor_id) REFERENCES hr_employees(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='員工資料';
-- 1.4 系統角色表
CREATE TABLE IF NOT EXISTS hr_system_roles (
id INT AUTO_INCREMENT PRIMARY KEY,
role_code VARCHAR(20) UNIQUE NOT NULL COMMENT '角色代碼',
role_name_zh VARCHAR(50) NOT NULL COMMENT '角色名稱(中文)',
role_name_en VARCHAR(50) COMMENT '角色名稱(英文)',
permissions JSON COMMENT '權限設定(JSON格式)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系統角色權限';
-- 1.5 員工角色關聯表
CREATE TABLE IF NOT EXISTS hr_employee_roles (
id INT AUTO_INCREMENT PRIMARY KEY,
employee_id INT NOT NULL COMMENT '員工ID',
role_id INT NOT NULL COMMENT '角色ID',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_employee_role (employee_id, role_id),
FOREIGN KEY (employee_id) REFERENCES hr_employees(id) ON DELETE CASCADE,
FOREIGN KEY (role_id) REFERENCES hr_system_roles(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='員工角色關聯';
-- ============================================
-- 二、職能字典
-- ============================================
-- 2.1 職能分類表
CREATE TABLE IF NOT EXISTS hr_competency_categories (
id INT AUTO_INCREMENT PRIMARY KEY,
category_code VARCHAR(20) UNIQUE NOT NULL COMMENT '分類代碼',
category_name_zh VARCHAR(50) NOT NULL COMMENT '分類名稱(中文)',
category_name_en VARCHAR(50) COMMENT '分類名稱(英文)',
category_type ENUM('core', 'management', 'professional') NOT NULL COMMENT '職能類型',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_type (category_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='職能分類';
-- 2.2 職能字典表
CREATE TABLE IF NOT EXISTS hr_competency_dictionary (
id INT AUTO_INCREMENT PRIMARY KEY,
competency_code VARCHAR(30) UNIQUE NOT NULL COMMENT '職能代碼',
category_id INT NOT NULL COMMENT '職能分類ID',
competency_name_zh VARCHAR(100) NOT NULL COMMENT '職能名稱(中文)',
competency_name_en VARCHAR(100) COMMENT '職能名稱(英文)',
definition_zh TEXT NOT NULL COMMENT '職能定義(中文)',
definition_en TEXT COMMENT '職能定義(英文)',
is_active BOOLEAN DEFAULT TRUE COMMENT '是否啟用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_category (category_id),
INDEX idx_active (is_active),
FOREIGN KEY (category_id) REFERENCES hr_competency_categories(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='職能字典';
-- 2.3 職能等級行為指標表
CREATE TABLE IF NOT EXISTS hr_competency_behaviors (
id INT AUTO_INCREMENT PRIMARY KEY,
competency_id INT NOT NULL COMMENT '職能ID',
level_num INT NOT NULL COMMENT '等級(1-5)',
behavior_description_zh TEXT NOT NULL COMMENT '行為指標(中文)',
behavior_description_en TEXT COMMENT '行為指標(英文)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_comp_level (competency_id, level_num),
FOREIGN KEY (competency_id) REFERENCES hr_competency_dictionary(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='職能行為指標';
-- ============================================
-- 三、角色卡模組
-- ============================================
-- 3.1 角色卡主表
CREATE TABLE IF NOT EXISTS hr_role_cards (
id INT AUTO_INCREMENT PRIMARY KEY,
card_code VARCHAR(30) UNIQUE NOT NULL COMMENT '角色卡編號',
card_type ENUM('template', 'personal') NOT NULL COMMENT '角色卡類型: template職位範本, personal個人角色卡',
department_id INT NOT NULL COMMENT '部門ID',
role_name_zh VARCHAR(100) NOT NULL COMMENT '角色名稱(中文)',
role_name_en VARCHAR(100) COMMENT '角色名稱(英文)',
job_level_id INT NOT NULL COMMENT '職級ID',
employee_id INT COMMENT '綁定員工ID(個人角色卡)',
mission_zh TEXT NOT NULL COMMENT '角色使命(中文)',
mission_en TEXT COMMENT '角色使命(英文)',
supervisor_id INT COMMENT '匯報對象ID',
external_contacts TEXT COMMENT '外部接口',
template_id INT COMMENT '來源範本ID(個人角色卡)',
status ENUM('draft', 'pending_approval', 'approved', 'archived') DEFAULT 'draft' COMMENT '狀態',
version INT DEFAULT 1 COMMENT '版本號',
approved_by INT COMMENT '審批人ID',
approved_at TIMESTAMP NULL COMMENT '審批時間',
created_by INT NOT NULL COMMENT '建立人ID',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_type (card_type),
INDEX idx_employee (employee_id),
INDEX idx_status (status),
INDEX idx_dept (department_id),
FOREIGN KEY (department_id) REFERENCES hr_departments(id),
FOREIGN KEY (job_level_id) REFERENCES hr_job_levels(id),
FOREIGN KEY (employee_id) REFERENCES hr_employees(id) ON DELETE SET NULL,
FOREIGN KEY (supervisor_id) REFERENCES hr_employees(id) ON DELETE SET NULL,
FOREIGN KEY (template_id) REFERENCES hr_role_cards(id) ON DELETE SET NULL,
FOREIGN KEY (approved_by) REFERENCES hr_employees(id),
FOREIGN KEY (created_by) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡主表';
-- 3.2 角色卡核心職責表
CREATE TABLE IF NOT EXISTS hr_role_responsibilities (
id INT AUTO_INCREMENT PRIMARY KEY,
role_card_id INT NOT NULL COMMENT '角色卡ID',
responsibility_zh TEXT NOT NULL COMMENT '職責描述(中文)',
responsibility_en TEXT COMMENT '職責描述(英文)',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_role_card (role_card_id),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡職責';
-- 3.3 角色卡督導對象表
CREATE TABLE IF NOT EXISTS hr_role_supervisees (
id INT AUTO_INCREMENT PRIMARY KEY,
role_card_id INT NOT NULL COMMENT '角色卡ID',
supervisee_id INT NOT NULL COMMENT '督導對象ID(員工或角色)',
supervisee_type ENUM('employee', 'role') NOT NULL COMMENT '督導對象類型',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_role_card (role_card_id),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡督導對象';
-- 3.4 角色卡協作夥伴表
CREATE TABLE IF NOT EXISTS hr_role_collaborators (
id INT AUTO_INCREMENT PRIMARY KEY,
role_card_id INT NOT NULL COMMENT '角色卡ID',
collaborator_id INT NOT NULL COMMENT '協作對象ID',
collaborator_type ENUM('employee', 'department', 'role') NOT NULL COMMENT '協作對象類型',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_role_card (role_card_id),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡協作夥伴';
-- 3.5 角色卡 KRA 表
CREATE TABLE IF NOT EXISTS hr_role_kra (
id INT AUTO_INCREMENT PRIMARY KEY,
role_card_id INT NOT NULL COMMENT '角色卡ID',
kra_name_zh VARCHAR(200) NOT NULL COMMENT 'KRA名稱(中文)',
kra_name_en VARCHAR(200) COMMENT 'KRA名稱(英文)',
weight_percentage DECIMAL(5,2) NOT NULL COMMENT '權重百分比',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_role_card (role_card_id),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡KRA';
-- 3.6 角色卡 KPI 表
CREATE TABLE IF NOT EXISTS hr_role_kpi (
id INT AUTO_INCREMENT PRIMARY KEY,
kra_id INT NOT NULL COMMENT 'KRA ID',
kpi_name_zh VARCHAR(200) NOT NULL COMMENT 'KPI指標名稱(中文)',
kpi_name_en VARCHAR(200) COMMENT 'KPI指標名稱(英文)',
measurement_zh TEXT NOT NULL COMMENT '衡量方式(中文)',
measurement_en TEXT COMMENT '衡量方式(英文)',
target_value VARCHAR(100) NOT NULL COMMENT '目標值',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_kra (kra_id),
FOREIGN KEY (kra_id) REFERENCES hr_role_kra(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色卡KPI';
-- ============================================
-- 四、能力卡模組
-- ============================================
-- 4.1 能力卡主表
CREATE TABLE IF NOT EXISTS hr_competency_cards (
id INT AUTO_INCREMENT PRIMARY KEY,
card_code VARCHAR(30) UNIQUE NOT NULL COMMENT '能力卡編號',
role_card_id INT NOT NULL COMMENT '關聯角色卡ID',
employee_id INT NOT NULL COMMENT '員工ID',
status ENUM('draft', 'active', 'archived') DEFAULT 'draft' COMMENT '狀態',
version INT DEFAULT 1 COMMENT '版本號',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_role_card (role_card_id),
INDEX idx_employee (employee_id),
INDEX idx_status (status),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id),
FOREIGN KEY (employee_id) REFERENCES hr_employees(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='能力卡主表';
-- 4.2 能力卡硬性能力表
CREATE TABLE IF NOT EXISTS hr_competency_card_hard_skills (
id INT AUTO_INCREMENT PRIMARY KEY,
competency_card_id INT NOT NULL COMMENT '能力卡ID',
skill_name_zh VARCHAR(100) NOT NULL COMMENT '技能名稱(中文)',
skill_name_en VARCHAR(100) COMMENT '技能名稱(英文)',
skill_category ENUM('knowledge', 'tool', 'certification') NOT NULL COMMENT '技能類別',
is_required BOOLEAN DEFAULT TRUE COMMENT '是否必備',
required_level INT NOT NULL COMMENT '要求熟練度(1-5)',
description_zh TEXT COMMENT '說明(中文)',
description_en TEXT COMMENT '說明(英文)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_comp_card (competency_card_id),
FOREIGN KEY (competency_card_id) REFERENCES hr_competency_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='能力卡硬性能力';
-- 4.3 能力卡軟性能力表
CREATE TABLE IF NOT EXISTS hr_competency_card_soft_skills (
id INT AUTO_INCREMENT PRIMARY KEY,
competency_card_id INT NOT NULL COMMENT '能力卡ID',
competency_dict_id INT NOT NULL COMMENT '職能字典ID',
required_level INT NOT NULL COMMENT '要求等級(1-5)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_comp_card (competency_card_id),
INDEX idx_comp_dict (competency_dict_id),
FOREIGN KEY (competency_card_id) REFERENCES hr_competency_cards(id) ON DELETE CASCADE,
FOREIGN KEY (competency_dict_id) REFERENCES hr_competency_dictionary(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='能力卡軟性能力';
-- ============================================
-- 五、績效卡模組
-- ============================================
-- 5.1 評核週期設定表
CREATE TABLE IF NOT EXISTS hr_review_cycles (
id INT AUTO_INCREMENT PRIMARY KEY,
cycle_code VARCHAR(30) UNIQUE NOT NULL COMMENT '週期代碼(如: 2024-Q1, 2024-Annual)',
cycle_year INT NOT NULL COMMENT '年度',
cycle_type ENUM('quarterly', 'annual') NOT NULL COMMENT '週期類型',
cycle_quarter INT COMMENT '季度(1-4)',
start_date DATE NOT NULL COMMENT '開始日期',
end_date DATE NOT NULL COMMENT '結束日期',
review_deadline DATE COMMENT '評核截止日期',
status ENUM('planned', 'active', 'closed') DEFAULT 'planned' COMMENT '狀態',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_year (cycle_year),
INDEX idx_type (cycle_type),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='評核週期設定';
-- 5.2 績效卡主表
CREATE TABLE IF NOT EXISTS hr_performance_cards (
id INT AUTO_INCREMENT PRIMARY KEY,
card_code VARCHAR(30) UNIQUE NOT NULL COMMENT '績效卡編號',
review_cycle_id INT NOT NULL COMMENT '評核週期ID',
employee_id INT NOT NULL COMMENT '被評核人ID',
role_card_id INT NOT NULL COMMENT '關聯角色卡ID',
competency_card_id INT NOT NULL COMMENT '關聯能力卡ID',
supervisor_id INT NOT NULL COMMENT '評核主管ID',
self_review_date TIMESTAMP NULL COMMENT '自評完成時間',
supervisor_review_date TIMESTAMP NULL COMMENT '主管評完成時間',
discussion_date DATE COMMENT '績效面談日期',
self_summary TEXT COMMENT '績效自評總結',
supervisor_feedback TEXT COMMENT '主管建議回饋',
goal_score DECIMAL(5,2) COMMENT '目標得分',
behavior_score DECIMAL(5,2) COMMENT '行為得分',
goal_weight DECIMAL(5,2) DEFAULT 70.00 COMMENT '目標佔比',
behavior_weight DECIMAL(5,2) DEFAULT 30.00 COMMENT '行為佔比',
total_score DECIMAL(5,2) COMMENT '總分',
rating ENUM('A+', 'A', 'B+', 'B', 'C') COMMENT '考核等級',
status ENUM('not_started', 'self_review', 'supervisor_review', 'completed', 'archived') DEFAULT 'not_started' COMMENT '狀態',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_cycle (review_cycle_id),
INDEX idx_employee (employee_id),
INDEX idx_supervisor (supervisor_id),
INDEX idx_status (status),
INDEX idx_rating (rating),
FOREIGN KEY (review_cycle_id) REFERENCES hr_review_cycles(id),
FOREIGN KEY (employee_id) REFERENCES hr_employees(id),
FOREIGN KEY (role_card_id) REFERENCES hr_role_cards(id),
FOREIGN KEY (competency_card_id) REFERENCES hr_competency_cards(id),
FOREIGN KEY (supervisor_id) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='績效卡主表';
-- 5.3 績效卡目標評核表
CREATE TABLE IF NOT EXISTS hr_performance_goals (
id INT AUTO_INCREMENT PRIMARY KEY,
performance_card_id INT NOT NULL COMMENT '績效卡ID',
kra_id INT NOT NULL COMMENT 'KRA ID',
weight_percentage DECIMAL(5,2) NOT NULL COMMENT '權重百分比',
actual_output TEXT COMMENT '具體產出描述',
self_completion DECIMAL(5,2) COMMENT '自評完成度(%)',
self_note TEXT COMMENT '自評說明',
supervisor_completion DECIMAL(5,2) COMMENT '主管評完成度(%)',
supervisor_note TEXT COMMENT '主管評說明',
consensus_completion DECIMAL(5,2) COMMENT '共識完成度(%)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_perf_card (performance_card_id),
INDEX idx_kra (kra_id),
FOREIGN KEY (performance_card_id) REFERENCES hr_performance_cards(id) ON DELETE CASCADE,
FOREIGN KEY (kra_id) REFERENCES hr_role_kra(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='績效卡目標評核';
-- 5.4 績效卡行為評估表
CREATE TABLE IF NOT EXISTS hr_performance_behaviors (
id INT AUTO_INCREMENT PRIMARY KEY,
performance_card_id INT NOT NULL COMMENT '績效卡ID',
competency_dict_id INT NOT NULL COMMENT '職能字典ID',
self_level INT COMMENT '自評等級(1-5)',
self_sbi_situation TEXT COMMENT '自評-情境(S)',
self_sbi_behavior TEXT COMMENT '自評-行為(B)',
self_sbi_impact TEXT COMMENT '自評-影響(I)',
supervisor_level INT COMMENT '主管評等級(1-5)',
supervisor_sbi_situation TEXT COMMENT '主管評-情境(S)',
supervisor_sbi_behavior TEXT COMMENT '主管評-行為(B)',
supervisor_sbi_impact TEXT COMMENT '主管評-影響(I)',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_perf_card (performance_card_id),
INDEX idx_comp_dict (competency_dict_id),
FOREIGN KEY (performance_card_id) REFERENCES hr_performance_cards(id) ON DELETE CASCADE,
FOREIGN KEY (competency_dict_id) REFERENCES hr_competency_dictionary(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='績效卡行為評估';
-- ============================================
-- 六、成長卡模組
-- ============================================
-- 6.1 成長卡主表
CREATE TABLE IF NOT EXISTS hr_growth_cards (
id INT AUTO_INCREMENT PRIMARY KEY,
card_code VARCHAR(30) UNIQUE NOT NULL COMMENT '成長卡編號',
performance_card_id INT NOT NULL COMMENT '關聯績效卡ID',
employee_id INT NOT NULL COMMENT '員工ID',
supervisor_id INT NOT NULL COMMENT '輔導主管ID',
growth_period_start DATE NOT NULL COMMENT '成長週期開始',
growth_period_end DATE NOT NULL COMMENT '成長週期結束',
career_aspiration TEXT COMMENT '職業志向',
employee_commitment TEXT COMMENT '員工承諾',
employee_signed_at TIMESTAMP NULL COMMENT '員工簽署時間',
supervisor_commitment TEXT COMMENT '主管承諾',
supervisor_signed_at TIMESTAMP NULL COMMENT '主管簽署時間',
review_frequency ENUM('monthly', 'quarterly') DEFAULT 'quarterly' COMMENT '檢視節奏',
other_suggestions TEXT COMMENT '其他建議',
status ENUM('draft', 'active', 'completed', 'archived') DEFAULT 'draft' COMMENT '狀態',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_perf_card (performance_card_id),
INDEX idx_employee (employee_id),
INDEX idx_supervisor (supervisor_id),
INDEX idx_status (status),
FOREIGN KEY (performance_card_id) REFERENCES hr_performance_cards(id),
FOREIGN KEY (employee_id) REFERENCES hr_employees(id),
FOREIGN KEY (supervisor_id) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成長卡主表';
-- 6.2 成長卡發展焦點表
CREATE TABLE IF NOT EXISTS hr_growth_focus_areas (
id INT AUTO_INCREMENT PRIMARY KEY,
growth_card_id INT NOT NULL COMMENT '成長卡ID',
focus_type ENUM('strength', 'development') NOT NULL COMMENT '焦點類型: strength優勢, development待發展',
competency_dict_id INT COMMENT '關聯職能字典ID',
kra_id INT COMMENT '關聯KRA ID',
description TEXT COMMENT '描述',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_growth_card (growth_card_id),
FOREIGN KEY (growth_card_id) REFERENCES hr_growth_cards(id) ON DELETE CASCADE,
FOREIGN KEY (competency_dict_id) REFERENCES hr_competency_dictionary(id),
FOREIGN KEY (kra_id) REFERENCES hr_role_kra(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成長卡發展焦點';
-- 6.3 成長卡IDP計畫表
CREATE TABLE IF NOT EXISTS hr_growth_idp_goals (
id INT AUTO_INCREMENT PRIMARY KEY,
growth_card_id INT NOT NULL COMMENT '成長卡ID',
goal_title TEXT NOT NULL COMMENT '發展目標(SMART)',
competency_dict_id INT COMMENT '對應能力ID',
timeline_start DATE COMMENT '開始時間',
timeline_end DATE COMMENT '預計完成時間',
success_criteria TEXT COMMENT '成果證據',
status ENUM('pending', 'in_progress', 'completed', 'cancelled') DEFAULT 'pending' COMMENT '狀態',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_growth_card (growth_card_id),
INDEX idx_comp_dict (competency_dict_id),
FOREIGN KEY (growth_card_id) REFERENCES hr_growth_cards(id) ON DELETE CASCADE,
FOREIGN KEY (competency_dict_id) REFERENCES hr_competency_dictionary(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成長卡IDP目標';
-- 6.4 成長卡行動計畫表
CREATE TABLE IF NOT EXISTS hr_growth_actions (
id INT AUTO_INCREMENT PRIMARY KEY,
idp_goal_id INT NOT NULL COMMENT 'IDP目標ID',
action_description TEXT NOT NULL COMMENT '具體行動',
resources_needed TEXT COMMENT '資源與支持',
display_order INT DEFAULT 0 COMMENT '顯示順序',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_idp_goal (idp_goal_id),
FOREIGN KEY (idp_goal_id) REFERENCES hr_growth_idp_goals(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成長卡行動計畫';
-- 6.5 成長卡追蹤紀錄表
CREATE TABLE IF NOT EXISTS hr_growth_tracking (
id INT AUTO_INCREMENT PRIMARY KEY,
growth_card_id INT NOT NULL COMMENT '成長卡ID',
review_date DATE NOT NULL COMMENT '檢視日期',
progress_update TEXT NOT NULL COMMENT '進度更新',
adjustments TEXT COMMENT '調整事項',
employee_confirmed BOOLEAN DEFAULT FALSE COMMENT '員工確認',
supervisor_confirmed BOOLEAN DEFAULT FALSE COMMENT '主管確認',
confirmed_at TIMESTAMP NULL COMMENT '確認時間',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_growth_card (growth_card_id),
INDEX idx_review_date (review_date),
FOREIGN KEY (growth_card_id) REFERENCES hr_growth_cards(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成長卡追蹤紀錄';
-- ============================================
-- 七、審批流程
-- ============================================
-- 7.1 審批記錄表
CREATE TABLE IF NOT EXISTS hr_approval_records (
id INT AUTO_INCREMENT PRIMARY KEY,
entity_type ENUM('role_card', 'competency_card', 'performance_card', 'growth_card') NOT NULL COMMENT '實體類型',
entity_id INT NOT NULL COMMENT '實體ID',
approver_id INT NOT NULL COMMENT '審批人ID',
action ENUM('submit', 'approve', 'reject', 'return') NOT NULL COMMENT '操作',
comments TEXT COMMENT '審批意見',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_entity (entity_type, entity_id),
INDEX idx_approver (approver_id),
FOREIGN KEY (approver_id) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='審批記錄';
-- ============================================
-- 八、系統設定
-- ============================================
-- 8.1 系統配置表
CREATE TABLE IF NOT EXISTS hr_system_settings (
id INT AUTO_INCREMENT PRIMARY KEY,
setting_key VARCHAR(50) UNIQUE NOT NULL COMMENT '設定鍵',
setting_value TEXT COMMENT '設定值',
setting_type ENUM('text', 'number', 'boolean', 'json') DEFAULT 'text' COMMENT '設定類型',
description_zh VARCHAR(200) COMMENT '說明(中文)',
description_en VARCHAR(200) COMMENT '說明(英文)',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
updated_by INT COMMENT '更新人ID',
FOREIGN KEY (updated_by) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系統設定';
-- 8.2 等級分界設定表
CREATE TABLE IF NOT EXISTS hr_rating_thresholds (
id INT AUTO_INCREMENT PRIMARY KEY,
rating ENUM('A+', 'A', 'B+', 'B', 'C') NOT NULL UNIQUE COMMENT '等級',
min_score DECIMAL(5,2) NOT NULL COMMENT '最低分數',
max_score DECIMAL(5,2) NOT NULL COMMENT '最高分數',
suggested_percentage DECIMAL(5,2) COMMENT '建議比例',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='等級分界設定';
-- ============================================
-- 九、版本管理
-- ============================================
-- 9.1 版本快照表
CREATE TABLE IF NOT EXISTS hr_version_snapshots (
id INT AUTO_INCREMENT PRIMARY KEY,
entity_type ENUM('role_card', 'competency_card', 'performance_card', 'growth_card') NOT NULL COMMENT '實體類型',
entity_id INT NOT NULL COMMENT '實體ID',
version_number INT NOT NULL COMMENT '版本號',
snapshot_data JSON NOT NULL COMMENT '快照資料(JSON格式)',
snapshot_reason VARCHAR(200) COMMENT '快照原因',
created_by INT NOT NULL COMMENT '建立人ID',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_entity (entity_type, entity_id),
INDEX idx_version (version_number),
FOREIGN KEY (created_by) REFERENCES hr_employees(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='版本快照';
-- ============================================
-- 十、系統日誌
-- ============================================
-- 10.1 操作日誌表
CREATE TABLE IF NOT EXISTS hr_audit_logs (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id INT COMMENT '操作人ID',
action VARCHAR(50) NOT NULL COMMENT '操作動作',
entity_type VARCHAR(50) COMMENT '實體類型',
entity_id INT COMMENT '實體ID',
ip_address VARCHAR(45) COMMENT 'IP位址',
user_agent TEXT COMMENT '使用者代理',
request_data JSON COMMENT '請求資料',
response_status INT COMMENT '回應狀態',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user (user_id),
INDEX idx_action (action),
INDEX idx_entity (entity_type, entity_id),
INDEX idx_created_at (created_at),
FOREIGN KEY (user_id) REFERENCES hr_employees(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日誌';
-- ============================================
-- 資料庫結構建立完成
-- ============================================

242
database/seed_data.sql Normal file
View File

@@ -0,0 +1,242 @@
-- ============================================
-- HR 績效評核系統 - 初始資料
-- Database: db_A102
-- Version: 1.0
-- Created: 2025-12-03
-- ============================================
USE db_A102;
-- ============================================
-- 一、系統角色初始資料
-- ============================================
INSERT INTO hr_system_roles (role_code, role_name_zh, role_name_en, permissions) VALUES
('ADMIN', '系統管理員', 'System Administrator', '{"all": true}'),
('HR', '人力資源', 'HR Manager', '{"view_all": true, "manage_settings": true, "manage_competency_dict": true}'),
('MANAGER', '部門主管', 'Department Manager', '{"view_team": true, "approve": true, "review": true}'),
('EMPLOYEE', '一般員工', 'Employee', '{"view_self": true, "self_review": true}');
-- ============================================
-- 二、職級初始資料
-- ============================================
INSERT INTO hr_job_levels (level_code, level_name_zh, level_name_en, level_order, is_management) VALUES
('L1', '助理專員', 'Junior Associate', 1, FALSE),
('L2', '專員', 'Associate', 2, FALSE),
('L3', '資深專員', 'Senior Associate', 3, FALSE),
('L4', '副理', 'Assistant Manager', 4, TRUE),
('L5', '經理', 'Manager', 5, TRUE),
('L6', '資深經理', 'Senior Manager', 6, TRUE),
('L7', '協理', 'Director', 7, TRUE),
('L8', '副總經理', 'Vice President', 8, TRUE),
('L9', '總經理', 'General Manager', 9, TRUE);
-- ============================================
-- 三、職能分類初始資料
-- ============================================
INSERT INTO hr_competency_categories (category_code, category_name_zh, category_name_en, category_type, display_order) VALUES
('CORE', '通用職能', 'Core Competencies', 'core', 1),
('MGMT', '管理職能', 'Management Competencies', 'management', 2),
('PROF', '專業職能', 'Professional Competencies', 'professional', 3);
-- ============================================
-- 四、職能字典初始資料 - 通用職能
-- ============================================
INSERT INTO hr_competency_dictionary (competency_code, category_id, competency_name_zh, competency_name_en, definition_zh, definition_en) VALUES
('CORE-001', 1, '溝通協調', 'Communication & Coordination',
'能夠清晰表達想法,有效傾聽他人意見,並促進團隊成員間的理解與協作',
'Ability to clearly express ideas, actively listen to others, and facilitate understanding and collaboration among team members'),
('CORE-002', 1, '團隊合作', 'Teamwork',
'願意與他人合作,主動支援團隊目標,並在團隊中發揮正向影響力',
'Willingness to collaborate with others, proactively support team goals, and create positive impact within the team'),
('CORE-003', 1, '問題解決', 'Problem Solving',
'能夠識別問題核心,運用邏輯思維分析問題,並提出有效的解決方案',
'Ability to identify core issues, apply logical thinking to analyze problems, and propose effective solutions'),
('CORE-004', 1, '執行力', 'Execution',
'能夠按時完成任務,對工作結果負責,並持續追蹤直到目標達成',
'Ability to complete tasks on time, take ownership of work results, and persistently track progress until goals are achieved'),
('CORE-005', 1, '學習成長', 'Learning Agility',
'保持開放心態學習新知,從經驗中反思改進,並持續提升個人能力',
'Maintain an open mindset for learning, reflect and improve from experiences, and continuously enhance personal capabilities');
-- ============================================
-- 五、職能字典初始資料 - 管理職能
-- ============================================
INSERT INTO hr_competency_dictionary (competency_code, category_id, competency_name_zh, competency_name_en, definition_zh, definition_en) VALUES
('MGMT-001', 2, '策略思維', 'Strategic Thinking',
'能夠從全局角度思考,預見未來趨勢,並制定符合組織目標的策略方向',
'Ability to think from a holistic perspective, anticipate future trends, and develop strategic directions aligned with organizational goals'),
('MGMT-002', 2, '團隊領導', 'Team Leadership',
'能夠激勵團隊成員,建立信任關係,並帶領團隊達成目標',
'Ability to motivate team members, build trust relationships, and lead teams to achieve goals'),
('MGMT-003', 2, '橫向整合力', 'Cross-functional Integration',
'能夠跨部門協調資源,整合不同觀點,並促進組織整體效能',
'Ability to coordinate resources across departments, integrate diverse perspectives, and enhance overall organizational effectiveness'),
('MGMT-004', 2, '決策判斷', 'Decision Making',
'能夠在不確定情境中做出明智決策,權衡利弊並承擔決策責任',
'Ability to make sound decisions in uncertain situations, weigh pros and cons, and take responsibility for decisions'),
('MGMT-005', 2, '人才培育', 'People Development',
'能夠識別團隊成員潛力,提供發展機會,並有效輔導人才成長',
'Ability to identify team members\' potential, provide development opportunities, and effectively coach talent growth');
-- ============================================
-- 六、職能行為指標初始資料 - 溝通協調 (CORE-001)
-- ============================================
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(1, 1, '',
'Can clearly express own ideas, listen to others, and perform basic communication in simple situations'),
(1, 2, '調',
'Can adjust communication style based on audience, effectively convey information and confirm understanding in daily work'),
(1, 3, '調',
'Can facilitate communication among team members, coordinate different opinions, and seek consensus in conflict situations'),
(1, 4, '',
'Can conduct cross-departmental communication in complex situations, effectively integrate multiple perspectives and drive decisions'),
(1, 5, '',
'Can establish organizational communication mechanisms, develop others\' communication skills, and exert influence at critical moments');
-- ============================================
-- 七、職能行為指標初始資料 - 團隊合作 (CORE-002)
-- ============================================
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(2, 1, '願意配合團隊需要,接受任務分配,並在團隊中扮演支持角色',
'Willing to accommodate team needs, accept task assignments, and play a supportive role in the team'),
(2, 2, '主動分享資訊與資源,協助團隊成員解決問題,並維持良好團隊氛圍',
'Proactively share information and resources, help team members solve problems, and maintain positive team atmosphere'),
(2, 3, '能夠在團隊中發揮協調作用,促進成員間合作,並為團隊目標貢獻想法',
'Can play a coordinating role in the team, facilitate member collaboration, and contribute ideas to team goals'),
(2, 4, '能夠跨團隊建立合作關係,整合不同專業,並帶動團隊創新',
'Can build collaborative relationships across teams, integrate different expertise, and drive team innovation'),
(2, 5, '能夠塑造合作文化,培養團隊協作能力,並成為組織協作的典範',
'Can shape collaborative culture, develop team collaboration capabilities, and become an organizational collaboration role model');
-- ============================================
-- 八、職能行為指標初始資料 - 問題解決 (CORE-003)
-- ============================================
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(3, 1, '能夠發現明顯問題,依據指導尋找解決方法,並執行基本的問題處理',
'Can identify obvious problems, seek solutions with guidance, and execute basic problem handling'),
(3, 2, '能夠分析問題成因,運用既有方法解決問題,並從中學習改進',
'Can analyze problem causes, apply existing methods to solve problems, and learn for improvement'),
(3, 3, '能夠系統化分析複雜問題,提出創新解決方案,並評估方案可行性',
'Can systematically analyze complex problems, propose innovative solutions, and evaluate solution feasibility'),
(3, 4, '能夠處理高度複雜問題,整合多方資源找出最佳解,並預防問題再發生',
'Can handle highly complex problems, integrate multiple resources to find optimal solutions, and prevent recurrence'),
(3, 5, '能夠建立問題解決機制,培養組織解決問題能力,並推動持續改善文化',
'Can establish problem-solving mechanisms, develop organizational problem-solving capabilities, and drive continuous improvement culture');
-- ============================================
-- 九、職能行為指標初始資料 - 執行力 (CORE-004)
-- ============================================
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(4, 1, '能夠按照指示完成任務,遵守時程與品質要求,並主動回報進度',
'Can complete tasks as instructed, comply with timeline and quality requirements, and proactively report progress'),
(4, 2, '能夠獨立規劃工作,有效管理時間與優先順序,並確保任務如期達成',
'Can independently plan work, effectively manage time and priorities, and ensure tasks are completed on schedule'),
(4, 3, '能夠在多任務情境中保持專注,克服障礙推動執行,並達成挑戰性目標',
'Can stay focused in multi-tasking situations, overcome obstacles to drive execution, and achieve challenging goals'),
(4, 4, '能夠帶領團隊高效執行專案,監控進度並即時調整,確保目標達成',
'Can lead teams to execute projects efficiently, monitor progress and adjust in time, ensuring goal achievement'),
(4, 5, '能夠建立執行管理機制,提升組織執行效能,並塑造結果導向文化',
'Can establish execution management mechanisms, enhance organizational execution effectiveness, and shape results-oriented culture');
-- ============================================
-- 十、職能行為指標初始資料 - 學習成長 (CORE-005)
-- ============================================
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(5, 1, '願意學習新知識與技能,接受回饋並嘗試改進,保持積極學習態度',
'Willing to learn new knowledge and skills, accept feedback and try to improve, maintain positive learning attitude'),
(5, 2, '主動尋求學習機會,從工作經驗中反思,並將所學應用於實務工作',
'Proactively seek learning opportunities, reflect from work experiences, and apply learning to practical work'),
(5, 3, '能夠快速掌握新領域知識,跨領域學習並整合應用,持續提升專業能力',
'Can quickly master new domain knowledge, learn across fields and integrate applications, continuously enhance professional capabilities'),
(5, 4, '能夠引領團隊學習,分享知識與經驗,並建立學習型團隊文化',
'Can lead team learning, share knowledge and experiences, and build learning team culture'),
(5, 5, '能夠推動組織學習與創新,建立知識管理機制,並培養組織學習能力',
'Can drive organizational learning and innovation, establish knowledge management mechanisms, and cultivate organizational learning capabilities');
-- ============================================
-- 十一、職能行為指標初始資料 - 管理職能 (簡化版)
-- ============================================
-- 策略思維 (MGMT-001)
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(6, 1, '能夠理解部門目標,並將其與個人工作連結', 'Can understand department goals and connect them with personal work'),
(6, 2, '能夠掌握業務全貌,識別關鍵成功因素', 'Can grasp business overview and identify key success factors'),
(6, 3, '能夠分析市場趨勢,制定部門策略方向', 'Can analyze market trends and develop department strategic direction'),
(6, 4, '能夠整合內外部資源,推動組織策略執行', 'Can integrate internal and external resources to drive organizational strategy execution'),
(6, 5, '能夠制定公司級策略,引領組織轉型創新', 'Can develop company-level strategy and lead organizational transformation and innovation');
-- 團隊領導 (MGMT-002)
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(7, 1, '能夠在團隊中發揮正向影響力', 'Can exert positive influence within the team'),
(7, 2, '能夠帶領小型專案團隊達成目標', 'Can lead small project teams to achieve goals'),
(7, 3, '能夠有效管理團隊,激勵成員績效', 'Can effectively manage teams and motivate member performance'),
(7, 4, '能夠建立高效團隊,培養後備領導人才', 'Can build high-performing teams and develop future leaders'),
(7, 5, '能夠跨組織領導變革,建立領導梯隊', 'Can lead cross-organizational change and build leadership pipeline');
-- 橫向整合力 (MGMT-003)
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(8, 1, '能夠與其他部門建立良好工作關係', 'Can establish good working relationships with other departments'),
(8, 2, '能夠協調跨部門合作完成專案', 'Can coordinate cross-departmental collaboration to complete projects'),
(8, 3, '能夠整合跨部門資源解決複雜問題', 'Can integrate cross-departmental resources to solve complex problems'),
(8, 4, '能夠建立跨部門協作機制提升效能', 'Can establish cross-departmental collaboration mechanisms to enhance effectiveness'),
(8, 5, '能夠推動組織整體整合優化', 'Can drive overall organizational integration and optimization');
-- 決策判斷 (MGMT-004)
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(9, 1, '能夠依據標準流程做出日常決策', 'Can make daily decisions based on standard procedures'),
(9, 2, '能夠在一般情境中做出合理判斷', 'Can make reasonable judgments in general situations'),
(9, 3, '能夠在複雜情境中權衡利弊做決策', 'Can weigh pros and cons to make decisions in complex situations'),
(9, 4, '能夠在不確定性下做出關鍵決策', 'Can make critical decisions under uncertainty'),
(9, 5, '能夠做出影響組織長遠發展的戰略決策', 'Can make strategic decisions affecting long-term organizational development');
-- 人才培育 (MGMT-005)
INSERT INTO hr_competency_behaviors (competency_id, level_num, behavior_description_zh, behavior_description_en) VALUES
(10, 1, '願意協助新人適應工作環境', 'Willing to help newcomers adapt to work environment'),
(10, 2, '能夠指導同事提升工作技能', 'Can guide colleagues to improve work skills'),
(10, 3, '能夠識別人才潛力並提供發展機會', 'Can identify talent potential and provide development opportunities'),
(10, 4, '能夠系統化培育團隊人才', 'Can systematically develop team talent'),
(10, 5, '能夠建立組織人才發展體系', 'Can establish organizational talent development system');
-- ============================================
-- 十二、系統設定初始資料
-- ============================================
INSERT INTO hr_system_settings (setting_key, setting_value, setting_type, description_zh, description_en) VALUES
('goal_weight', '70.00', 'number', '目標成果權重百分比', 'Goal achievement weight percentage'),
('behavior_weight', '30.00', 'number', '行為能力權重百分比', 'Behavior competency weight percentage'),
('default_language', 'zh-TW', 'text', '系統預設語言', 'System default language'),
('enable_quarterly_review', 'true', 'boolean', '是否啟用季度評核', 'Enable quarterly review'),
('max_idp_goals', '4', 'number', 'IDP計畫最大目標數', 'Maximum IDP goals count');
-- ============================================
-- 十三、等級分界初始資料
-- ============================================
INSERT INTO hr_rating_thresholds (rating, min_score, max_score, suggested_percentage) VALUES
('A+', 90.00, 100.00, 10.00),
('A', 80.00, 89.99, 22.50),
('B+', 70.00, 79.99, 35.00),
('B', 60.00, 69.99, 22.50),
('C', 0.00, 59.99, 10.00);
-- ============================================
-- 初始資料建立完成
-- ============================================