feat: 新增多項功能 v2.1

- 新增 CSV 匯入匯出功能(所有頁籤)
- 新增崗位清單頁籤(含欄位排序)
- 新增管理者頁面(使用者 CRUD)
- 新增事業體選項(SBU/MBU/HQBU/ITBU/HRBU/ACCBU)
- 新增組織單位欄位(處級/部級/課級)
- 崗位描述/備注改為條列式說明
- 新增 README.md 文件
- 新增開發指令記錄檔

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-04 10:06:50 +08:00
parent 293d64bc65
commit d17af39bf4
8 changed files with 2302 additions and 4 deletions

206
README.md Normal file
View File

@@ -0,0 +1,206 @@
# HR Position Management System
人力資源崗位管理系統 v2.0
## 功能特色
### 1. 崗位基礎資料維護
- **組織架構設定**
- 事業體選擇SBU/MBU/HQBU/ITBU/HRBU/ACCBU
- 處級單位Division
- 部級單位Department
- 課級單位Section
- **崗位資訊**
- 崗位編號、名稱、級別
- 崗位類別與性質
- 編制人數、生效日期
- 條列式崗位描述與備注
### 2. 職務基礎資料維護
- 職務類別管理(管理職/技術職/業務職/行政職/研發職)
- 職務編號與名稱(中英文)
- 生效日期、編制人數
- 職級與福利設定(全勤/住房補貼)
### 3. 崗位描述維護
- 工作職責說明
- 技能要求
- 工作環境描述
- 職涯發展路徑
### 4. 崗位清單(新功能)
- 顯示所有崗位資料(表格形式)
- 點擊欄位標題排序(升序/降序切換)
- 支援匯出 CSV
### 5. 管理者頁面(新功能)
- 使用者管理(新增/編輯/刪除)
- 三種權限等級:
- 一般使用者(綠色標籤)
- 管理者(橘色標籤)
- 最高權限管理者(紅色標籤)
- 匯出使用者清單 CSV
### 6. 通用功能
- **CSV 匯入/匯出**:所有頁籤皆支援
- **AI 自動填充**「I'm feeling lucky」按鈕
- **錯誤訊息處理**:可展開、可複製
---
## 技術架構
| 層級 | 技術 |
|------|------|
| 前端 | HTML5, CSS3, JavaScript (Vanilla) |
| 後端 | Python Flask |
| 資料庫 | MySQL 5.7+ |
| 版本控制 | Git / Gitea |
| AI 整合 | Gemini API (gemini-2.5-flash) |
---
## 環境需求
- Python 3.8+
- MySQL 5.7+
- 現代瀏覽器Chrome, Firefox, Edge
---
## 快速啟動
### 方式一:純前端(無需後端)
直接用瀏覽器開啟 `index.html` 即可使用基本功能。
### 方式二:完整版(含 Flask API
```bash
# 1. 複製專案
git clone https://gitea.theaken.com/donald/hr-position-system.git
cd hr-position-system
# 2. 安裝 Python 套件
pip install -r requirements.txt
# 3. 設定環境變數
# 編輯 .env 填入資料庫和 API 金鑰
# 4. 初始化資料庫
python init_database.py
# 5. 啟動伺服器
python start_server.py
# 6. 開啟瀏覽器
# http://127.0.0.1:5000
```
---
## API 端點
### 崗位資料 API
| 方法 | 路徑 | 說明 |
|------|------|------|
| GET | `/api/positions` | 獲取所有崗位 |
| GET | `/api/positions/<id>` | 獲取單一崗位 |
| POST | `/api/positions` | 新增崗位 |
| PUT | `/api/positions/<id>` | 更新崗位 |
| DELETE | `/api/positions/<id>` | 刪除崗位 |
### 職務資料 API
| 方法 | 路徑 | 說明 |
|------|------|------|
| GET | `/api/jobs` | 獲取所有職務 |
| POST | `/api/jobs` | 新增職務 |
### LLM API
| 方法 | 路徑 | 說明 |
|------|------|------|
| GET | `/api/llm/config` | 取得 LLM 設定 |
| GET | `/api/llm/test/<api>` | 測試 API 連線 |
| POST | `/api/llm/generate` | 生成文字 |
---
## 專案結構
```
hr-position-system/
├── index.html # 主要應用頁面
├── start_server.py # Flask 伺服器Windows 相容)
├── llm_config.py # LLM API 設定
├── csv_utils.js # CSV 工具模組
├── error_handler.js # 錯誤處理模組
├── api_test.html # API 測試頁面
├── database_schema.sql # 資料庫結構
├── init_database.py # 資料庫初始化
├── requirements.txt # Python 套件
├── .env # 環境變數(不上傳)
├── .gitignore # Git 忽略清單
├── SDD.md # 系統設計文件
├── USER_COMMANDS_LOG.md # 開發指令記錄
└── README.md # 本文件
```
---
## 快捷鍵
| 快捷鍵 | 功能 |
|--------|------|
| `Ctrl+S` | 保存并退出 |
| `Ctrl+N` | 保存并新增 |
---
## 版本歷史
### v2.0 (2024-12-04)
- 新增 CSV 匯入匯出功能(所有頁籤)
- 新增崗位清單頁籤(含欄位排序)
- 新增管理者頁面(使用者 CRUD
- 新增事業體與組織單位欄位
- 崗位描述/備注改為條列式說明
- 修正 CORS 錯誤
- 改善錯誤訊息顯示(可複製)
- 修正 Windows 編碼問題
### v1.0 (2024-12-04)
- 初始版本
- 崗位基礎資料維護
- 職務基礎資料維護
- 崗位描述維護
---
## 環境變數設定(.env
```env
# 資料庫設定
DB_HOST=mysql.theaken.com
DB_PORT=33306
DB_NAME=db_A102
DB_USER=A102
DB_PASSWORD=your_password
# LLM API 金鑰
GEMINI_API_KEY=your_gemini_key
DEEPSEEK_API_KEY=your_deepseek_key
OPENAI_API_KEY=your_openai_key
# Gitea 設定
GITEA_URL=https://gitea.theaken.com
GITEA_TOKEN=your_token
```
---
## 授權
此專案為內部使用系統。
## 聯絡方式
如有問題請聯繫系統管理員。