d17af39bf4517e4831b8ee02c5e686a8822917c5
- 新增 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>
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)
# 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)
# 資料庫設定
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
授權
此專案為內部使用系統。
聯絡方式
如有問題請聯繫系統管理員。
Description
Languages
Python
47.8%
HTML
45.9%
JavaScript
6.3%