Files
hr-position-system/docs/ID重命名對照表.md
DonaldFang 方士碩 a6af297623 backup: 完成 HR_position_ 表格前綴重命名與欄位對照表整理
變更內容:
- 所有資料表加上 HR_position_ 前綴
- 整理完整欄位顯示名稱與 ID 對照表
- 模組化 JS 檔案 (admin.js, ai.js, csv.js 等)
- 專案結構優化 (docs/, scripts/, tests/ 等)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:05:20 +08:00

287 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HTML ID 重命名對照表
## 變更概覽
- **總計需變更72 個**
- **無需變更13 個**
- **總欄位數85 個**
---
## 模組 1: 崗位基礎資料 - 基礎資料頁籤
**需變更15 / 15**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `businessUnit` | `pos_businessUnit` | 事業體 (Business Unit) | |
| `division` | `pos_division` | 處級單位 (Division) | |
| `department` | `pos_department` | 部級單位 (Department) | |
| `section` | `pos_section` | 課級單位 (Section) | |
| `positionCode` | `pos_code` | 崗位編號 | 必填欄位 |
| `effectiveDate` | `pos_effectiveDate` | 生效日期 | |
| `positionName` | `pos_name` | 崗位名稱 | 必填欄位 |
| `positionLevel` | `pos_level` | 崗位級別 | |
| `positionCategory` | `pos_category` | 崗位類別 | onchange 事件 |
| `positionCategoryName` | `pos_categoryName` | 崗位類別名稱 | readonly |
| `positionNature` | `pos_type` | 崗位性質 | onchange 事件,注意:資料庫改為 positionType |
| `positionNatureName` | `pos_typeName` | 崗位性質名稱 | readonly資料庫改為 positionTypeName |
| `headcount` | `pos_headcount` | 編制人數 | |
| `positionDesc` | `pos_desc` | 崗位描述 | 資料庫改為 description |
| `positionRemark` | `pos_remark` | 崗位備注 | 資料庫改為 remark |
---
## 模組 2: 崗位基礎資料 - 招聘要求頁籤
**需變更18 / 18**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `minEducation` | `rec_eduLevel` | 最低學歷 | 資料庫改為 educationLevel |
| `requiredGender` | `rec_gender` | 要求性別 | |
| `salaryRange` | `rec_salaryRange` | 薪酬范圍 | |
| `workExperience` | `rec_expYears` | 工作經驗 | 資料庫改為 experienceYears |
| `minAge` | `rec_minAge` | 最小年齡 | |
| `maxAge` | `rec_maxAge` | 最大年齡 | |
| `jobType` | `rec_jobType` | 工作性質 | |
| `recruitPosition` | `rec_position` | 招聘職位 | 資料庫改為 recruitPosition |
| `jobTitle` | `rec_jobTitle` | 職位名稱(對外) | |
| `superiorPosition` | `rec_superiorCode` | 上級崗位編號 | 資料庫改為 superiorPositionCode |
| `jobDesc` | `rec_jobDesc` | 職位描述(JD) | 資料庫改為 recruitJobDesc |
| `positionReq` | `rec_positionReq` | 崗位要求(Req) | 資料庫改為 recruitRequirements |
| `titleReq` | `rec_certReq` | 職稱要求 | 語義更正為「證照要求」,資料庫改為 certRequirements |
| `majorReq` | `rec_majorReq` | 專業要求 | 資料庫改為 majorRequirements |
| `skillReq` | `rec_skillReq` | 技能要求 | 資料庫改為 skillRequirements |
| `langReq` | `rec_langReq` | 語言要求 | 資料庫改為 langRequirements |
| `otherReq` | `rec_otherReq` | 其他要求 | 資料庫改為 otherRequirements |
| `recruitRemark` | `rec_remark` | 招聘備注 | 資料庫改為 recruitRemark |
---
## 模組 3: 職務基礎資料
**需變更12 / 12**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jobCategoryCode` | `job_category` | 職務類別編號 | 必填欄位onchange 事件 |
| `jobCategoryName` | `job_categoryName` | 職務類別名稱 | readonly |
| `jobCode` | `job_code` | 職務編號 | 必填欄位 |
| `jobName` | `job_name` | 職務名稱 | 必填欄位 |
| `jobNameEn` | `job_nameEn` | 職務英文 | |
| `jobEffectiveDate` | `job_effectiveDate` | 生效日期 | 資料庫改為 effectiveDate |
| `jobLevel` | `job_level` | 職務層級 | 敏感欄位 |
| `jobHeadcount` | `job_headcount` | 編制人數 | 資料庫改為 headcount |
| `jobSortOrder` | `job_sortOrder` | 排列順序 | 資料庫改為 sortOrder |
| `hasAttendanceBonus` | `job_hasAttBonus` | 全勤獎金 | Toggle Switch |
| `hasHousingAllowance` | `job_hasHouseAllow` | 住房補貼 | Toggle Switch |
| `jobRemark` | `job_remark` | 職務備注 | 資料庫改為 remark |
---
## 模組 4: 部門職責
**需變更19 / 19**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `deptFunctionCode` | `df_code` | 部門職責編號 | 必填欄位,資料庫改為 dfCode |
| `deptFunctionName` | `df_name` | 部門職責名稱 | 必填欄位,資料庫改為 dfName |
| `deptFunctionBU` | `df_businessUnit` | 事業體 (第1個) | 必填欄位,已合併重複欄位 |
| `deptFunc_businessUnit` | `df_businessUnit` | 事業體 (第2個) | **合併為同一欄位** |
| `deptFunc_division` | `df_division` | 處級單位 | 必填欄位 |
| `deptFunc_department` | `df_department` | 部級單位 | 必填欄位 |
| `deptFunc_section` | `df_section` | 課級單位 | |
| `deptFunc_positionTitle` | `df_posTitle` | 崗位名稱 | 必填欄位,資料庫改為 positionTitle |
| `deptFunc_positionLevel` | `df_posLevel` | 崗位級別 | 資料庫保持 positionLevel |
| `deptManager` | `df_managerTitle` | 部門主管職稱 | 資料庫改為 managerTitle |
| `deptFunctionEffectiveDate` | `df_effectiveDate` | 生效日期 | 必填欄位,資料庫改為 effectiveDate |
| `deptHeadcount` | `df_headcountLimit` | 部門人數上限 | 資料庫改為 headcountLimit |
| `deptStatus` | `df_status` | 部門狀態 | 資料庫改為 status |
| `deptMission` | `df_mission` | 部門使命 | 資料庫改為 mission |
| `deptVision` | `df_vision` | 部門願景 | 資料庫改為 vision |
| `deptCoreFunctions` | `df_coreFunc` | 核心職責 | 必填欄位,資料庫改為 coreFunctions |
| `deptKPIs` | `df_kpis` | 關鍵績效指標 | 資料庫改為 kpis |
| `deptCollaboration` | `df_collab` | 協作部門 | 資料庫改為 collaboration |
| `deptFunctionRemark` | `df_remark` | 備注 | 資料庫改為 remark |
**特別注意:** 原本有兩個事業體欄位 (`deptFunctionBU``deptFunc_businessUnit`),新規範已合併為單一欄位 `df_businessUnit`
---
## 模組 5: 崗位描述 - 基本信息
**需變更3 / 4**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jd_empNo` | `jd_empNo` | 工號 | ✓ 無需變更 |
| `jd_empName` | `jd_empName` | 姓名 | ✓ 無需變更 |
| `jd_positionCode` | `jd_posCode` | 崗位代碼 | |
| `jd_versionDate` | `jd_versionDate` | 版本更新日期 | ✓ 無需變更 |
---
## 模組 6: 崗位描述 - 崗位基本信息
**需變更10 / 14**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jd_positionName` | `jd_posName` | 崗位名稱 | |
| `jd_businessUnit` | `jd_businessUnit` | 事業體 | ✓ 無需變更 |
| `jd_division` | `jd_division` | 處級單位 | ✓ 無需變更 |
| `jd_department` | `jd_department` | 部級單位 | ✓ 無需變更 |
| `jd_section` | `jd_section` | 課級單位 | ✓ 無需變更 |
| `jd_positionTitle` | `(刪除)` | 崗位名稱 (重複) | 與 positionName 重複,建議刪除 |
| `jd_positionLevel` | `jd_posLevel` | 崗位級別 | |
| `jd_positionEffectiveDate` | `jd_posEffDate` | 崗位生效日期 | |
| `jd_directSupervisor` | `jd_supervisor` | 直接領導職務 | |
| `jd_positionGradeJob` | `jd_gradeJob` | 崗位職等&職務 | Modal 選擇器 |
| `jd_reportTo` | `jd_reportTo` | 匯報對象職務 | ✓ 無需變更 |
| `jd_directReports` | `jd_directReports` | 直接下級 | ✓ 無需變更 |
| `jd_workLocation` | `jd_location` | 任職地點 | |
| `jd_empAttribute` | `jd_empAttr` | 員工屬性 | |
---
## 模組 7: 崗位描述 - 部門職責資訊
**需變更3 / 5**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jd_deptFunctionCode` | `jd_dfCode` | 部門職責編號 | readonly |
| `jd_deptFunctionBU` | `(保留)` | 事業體 | 建議保留或改為 jd_dfBU |
| `jd_deptMission` | `jd_deptMission` | 部門使命 | ✓ 無需變更 |
| `jd_deptCoreFunctions` | `jd_deptCoreFunctions` | 部門核心職責 | ✓ 無需變更 |
| `jd_deptKPIs` | `jd_deptKPIs` | 部門 KPIs | ✓ 無需變更 |
**說明:** 這些是 readonly 欄位,自動帶入,可保持現有命名以維持與來源資料的一致性。
---
## 模組 8: 崗位描述 - 職責描述
**需變更1 / 2**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jd_positionPurpose` | `jd_purpose` | 崗位設置目的 | |
| `jd_mainResponsibilities` | `jd_mainResp` | 主要崗位職責 | Numbered textarea |
---
## 模組 9: 崗位描述 - 崗位要求
**需變更5 / 5**
| 舊 ID | 新 ID | 欄位名稱 | 備註 |
|-------|-------|---------|------|
| `jd_education` | `jd_eduLevel` | 教育程度 | |
| `jd_basicSkills` | `jd_basicSkills` | 基本技能 | ✓ 無需變更 |
| `jd_professionalKnowledge` | `jd_proKnowledge` | 專業知識 | |
| `jd_workExperienceReq` | `jd_expReq` | 工作經驗 | |
| `jd_otherRequirements` | `jd_otherReq` | 其他 | |
---
## 重要變更說明
### 1. 前綴標準化
所有欄位統一採用模組前綴:
- `pos_` - 崗位基礎資料
- `rec_` - 招聘要求
- `job_` - 職務基礎資料
- `df_` - 部門職責
- `jd_` - 崗位描述
### 2. 命名簡化
- `positionCode``pos_code`
- `positionName``pos_name`
- `positionCategory``pos_category`
- `positionNature``pos_type` (語義更精確)
- `hasAttendanceBonus``job_hasAttBonus` (縮寫簡化)
### 3. 語義改善
- `titleReq``rec_certReq` (職稱要求 → 證照要求)
- `positionNature``pos_type` (性質 → 類型,更符合英文語義)
- `workExperience``rec_expYears` (經驗年數更明確)
### 4. 資料庫欄位同步變更
部分 HTML ID 變更時,資料庫欄位名稱也需要對應修改:
- `positionNature``positionType`
- `positionDesc``description`
- `positionRemark``remark`
- `minEducation``educationLevel`
### 5. 重複欄位合併
部門職責模組中的兩個事業體欄位:
- 原:`deptFunctionBU``deptFunc_businessUnit`
- 新:統一為 `df_businessUnit`
---
## 實施建議
### 階段 1: 資料庫遷移
1. 執行資料庫欄位重命名 SQL 腳本
2. 更新所有 ORM Model 定義
3. 更新 API 回應的欄位名稱
### 階段 2: 前端更新
1. 全局搜尋替換 HTML ID
2. 更新所有 JavaScript 選擇器
3. 更新 CSS 樣式選擇器
4. 更新表單驗證邏輯
### 階段 3: 測試驗證
1. 單元測試:驗證所有表單欄位綁定
2. 整合測試:驗證資料儲存與讀取
3. E2E 測試:完整流程測試
4. 回歸測試:確保無遺漏欄位
### 階段 4: 文檔更新
1. API 文檔更新
2. 資料字典更新
3. 開發指南更新
4. 使用者手冊更新(如有影響)
---
## 風險評估
### 高風險變更 (必填欄位)
- `positionCode``pos_code`
- `positionName``pos_name`
- `jobCode``job_code`
- `jobName``job_name`
- `deptFunctionCode``df_code`
**建議:** 優先測試這些欄位的儲存與驗證邏輯。
### 中風險變更 (聯動欄位)
- 組織結構欄位:`businessUnit`, `division`, `department`, `section`
- 自動帶出欄位:`positionCategoryName`, `positionNatureName`
**建議:** 仔細測試聯動邏輯和 onchange 事件。
### 低風險變更 (選填欄位)
- 備注類欄位
- 描述類欄位
---
## 檢查清單
- [ ] 資料庫遷移腳本已準備
- [ ] Model 定義已更新
- [ ] HTML 表單 ID 已更新
- [ ] JavaScript 選擇器已更新
- [ ] CSS 樣式已更新
- [ ] API 端點已更新
- [ ] 驗證邏輯已更新
- [ ] 單元測試已通過
- [ ] 整合測試已通過
- [ ] E2E 測試已通過
- [ ] 文檔已更新
- [ ] 程式碼審查已完成
---
**文檔版本:** v1.0
**建立日期:** 2025-12-06
**最後更新:** 2025-12-06
**維護者:** 系統開發團隊