""" 組織階層資料匯入模組 從 Markdown 表格解析組織階層資料,供 Flask API 使用 """ def import_to_memory(): """ 解析組織階層資料並返回結構化資料 Returns: dict 包含所有階層資料 """ # 原始資料(從 excel_table copy.md 提取,共 313 筆記錄) raw_data = [ ("半導體事業群", "半導體事業群", "", "營運長"), ("半導體事業群", "半導體事業群", "", "營運長助理"), ("汽車事業體", "汽車事業體", "", "副總經理"), ("汽車事業體", "汽車事業體", "", "專案經理"), ("法務室", "法務室", "", "經副理"), ("法務室", "法務室", "", "法務專員"), ("法務室", "法務室", "", "專利工程師"), ("岡山製造事業體", "生產處", "", "處長"), ("岡山製造事業體", "生產處", "", "專員"), ("岡山製造事業體", "生產處", "生產部", "經副理"), ("岡山製造事業體", "生產處", "生產部", "課長"), ("岡山製造事業體", "生產處", "生產部", "組長"), ("岡山製造事業體", "生產處", "生產部", "班長"), ("岡山製造事業體", "生產處", "生產部", "副班長"), ("岡山製造事業體", "生產處", "生產部", "作業員"), ("岡山製造事業體", "生產處", "生產企劃部", "經副理"), ("岡山製造事業體", "生產處", "生產企劃部", "課長"), ("岡山製造事業體", "生產處", "生產企劃部", "專員"), ("岡山製造事業體", "生產處", "生產企劃部", "工程師"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "經副理"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "課長"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "工程師"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "組長"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "班長"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "副班長"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "作業員"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "副總經理"), ("岡山製造事業體", "岡山製造事業體", "岡山品質管制部", "副總經理助理"), ("岡山製造事業體", "封裝工程處", "", "處長"), ("岡山製造事業體", "封裝工程處", "", "專員"), ("岡山製造事業體", "封裝工程處", "", "工程師"), ("岡山製造事業體", "封裝工程處", "製程工程一部", "經副理"), ("岡山製造事業體", "封裝工程處", "製程工程二部", "經副理"), ("岡山製造事業體", "封裝工程處", "製程工程二部", "課長"), ("岡山製造事業體", "封裝工程處", "製程工程二部", "工程師"), ("岡山製造事業體", "封裝工程處", "設備一部", "經副理"), ("岡山製造事業體", "封裝工程處", "設備二部", "經副理"), ("岡山製造事業體", "封裝工程處", "設備二部", "課長"), ("岡山製造事業體", "封裝工程處", "設備二部", "工程師"), ("岡山製造事業體", "副總辦公室", "工業工程部", "經副理"), ("岡山製造事業體", "副總辦公室", "工業工程部", "工程師"), ("岡山製造事業體", "副總辦公室", "工業工程部", "課長"), ("岡山製造事業體", "副總辦公室", "工業工程部", "副理"), ("岡山製造事業體", "測試工程與研發處", "", "處長"), ("岡山製造事業體", "測試工程與研發處", "", "專員"), ("岡山製造事業體", "測試工程與研發處", "測試工程部", "經副理"), ("岡山製造事業體", "測試工程與研發處", "測試工程部", "課長"), ("岡山製造事業體", "測試工程與研發處", "測試工程部", "工程師"), ("岡山製造事業體", "測試工程與研發處", "新產品導入部", "經副理"), ("岡山製造事業體", "測試工程與研發處", "新產品導入部", "專員"), ("岡山製造事業體", "測試工程與研發處", "新產品導入部", "工程師"), ("岡山製造事業體", "測試工程與研發處", "研發部", "經副理"), ("岡山製造事業體", "測試工程與研發處", "研發部", "課長"), ("岡山製造事業體", "測試工程與研發處", "研發部", "工程師"), ("岡山製造事業體", "測試工程與研發處", "研發部", "專員"), ("岡山製造事業體", "資材處", "", "處長"), ("岡山製造事業體", "資材處", "採購部", "經副理"), ("岡山製造事業體", "資材處", "採購部", "課長"), ("岡山製造事業體", "資材處", "採購部", "專員"), ("岡山製造事業體", "資材處", "外部資源部", "專員"), ("岡山製造事業體", "資材處", "生管部", "經副理"), ("岡山製造事業體", "資材處", "生管部", "課長"), ("岡山製造事業體", "資材處", "生管部", "專員"), ("岡山製造事業體", "資材處", "生管部", "班長"), ("岡山製造事業體", "資材處", "生管部", "副班長"), ("岡山製造事業體", "資材處", "生管部", "作業員"), ("岡山製造事業體", "資材處", "原物料控制部", "經副理"), ("岡山製造事業體", "資材處", "原物料控制部", "課長"), ("岡山製造事業體", "資材處", "原物料控制部", "專員"), ("岡山製造事業體", "資材處", "原物料控制部", "班長"), ("岡山製造事業體", "資材處", "原物料控制部", "副班長"), ("岡山製造事業體", "資材處", "原物料控制部", "作業員"), ("岡山製造事業體", "廠務與環安衛管理處", "", "處長"), ("岡山製造事業體", "廠務與環安衛管理處", "", "工程師"), ("岡山製造事業體", "廠務與環安衛管理處", "廠務部", "經副理"), ("岡山製造事業體", "廠務與環安衛管理處", "廠務部", "課長"), ("岡山製造事業體", "廠務與環安衛管理處", "廠務部", "工程師"), ("岡山製造事業體", "廠務與環安衛管理處", "廠務部", "專員"), ("產品事業體", "產品事業體", "廠務部", "處長"), ("產品事業體", "先進產品事業處", "", "處長"), ("產品事業體", "先進產品事業處", "產品管理部(APD)", "經副理"), ("產品事業體", "先進產品事業處", "產品管理部(APD)", "工程師"), ("產品事業體", "成熟產品事業處", "", "處長"), ("產品事業體", "成熟產品事業處", "產品管理部(MPD)", "經副理"), ("產品事業體", "成熟產品事業處", "產品管理部(MPD)", "專案經副理"), ("產品事業體", "成熟產品事業處", "產品管理部(MPD)", "工程師"), ("晶圓三廠", "晶圓三廠", "產品管理部(MPD)", "顧問"), ("晶圓三廠", "晶圓三廠", "產品管理部(MPD)", "專員"), ("晶圓三廠", "晶圓三廠", "品質部", "經副理"), ("晶圓三廠", "晶圓三廠", "品質部", "工程師"), ("晶圓三廠", "晶圓三廠", "品質部", "作業員"), ("晶圓三廠", "晶圓三廠", "製造部", "經副理"), ("晶圓三廠", "晶圓三廠", "製造部", "課長"), ("晶圓三廠", "晶圓三廠", "製造部", "班長"), ("晶圓三廠", "晶圓三廠", "製造部", "副班長"), ("晶圓三廠", "晶圓三廠", "製造部", "作業員"), ("晶圓三廠", "晶圓三廠", "廠務部(Fab3)", "經副理"), ("晶圓三廠", "晶圓三廠", "廠務部(Fab3)", "工程師"), ("晶圓三廠", "製程工程處", "工程一部", "經副理"), ("晶圓三廠", "製程工程處", "工程一部", "工程師"), ("晶圓三廠", "製程工程處", "工程二部", "經副理"), ("晶圓三廠", "製程工程處", "工程二部", "工程師"), ("晶圓三廠", "製程工程處", "工程三部", "經副理"), ("晶圓三廠", "製程工程處", "工程三部", "工程師"), ("晶圓三廠", "製程工程處", "製程整合部(Fab3)", "經副理"), ("晶圓三廠", "製程工程處", "製程整合部(Fab3)", "工程師"), ("集團人資行政事業體", "集團人資行政事業體", "製程整合部(Fab3)", "人資長"), ("集團人資行政事業體", "集團人資行政事業體", "行政總務管理部", "經副理"), ("集團人資行政事業體", "集團人資行政事業體", "行政總務管理部", "專員"), ("集團人資行政事業體", "集團人資行政事業體", "行政總務管理部", "助理"), ("集團人資行政事業體", "集團人資行政事業體", "招募任用部", "經副理"), ("集團人資行政事業體", "集團人資行政事業體", "招募任用部", "專員"), ("集團人資行政事業體", "集團人資行政事業體", "訓練發展部", "經副理"), ("集團人資行政事業體", "集團人資行政事業體", "訓練發展部", "專員"), ("集團人資行政事業體", "集團人資行政事業體", "薪酬管理部", "經副理"), ("集團人資行政事業體", "集團人資行政事業體", "薪酬管理部", "專員"), ("集團財務事業體", "集團財務事業體", "薪酬管理部", "財務長"), ("集團財務事業體", "岡山強茂財務處", "", "處長"), ("集團財務事業體", "岡山強茂財務處", "岡山強茂財務部", "經副理"), ("集團財務事業體", "岡山強茂財務處", "岡山強茂財務部", "課長"), ("集團財務事業體", "岡山強茂財務處", "岡山強茂財務部", "專員"), ("集團財務事業體", "集團財務事業體", "岡山強茂財務部", "專案副理"), ("集團會計事業體", "集團會計事業體", "岡山強茂財務部", "會計長"), ("集團會計事業體", "岡山會計處", "", "處長"), ("集團會計事業體", "岡山會計處", "會計部", "經副理"), ("集團會計事業體", "岡山會計處", "會計部", "課長"), ("集團會計事業體", "岡山會計處", "會計部", "專員"), ("集團會計事業體", "岡山會計處", "管理會計部", "經副理"), ("集團會計事業體", "岡山會計處", "管理會計部", "課長"), ("集團會計事業體", "岡山會計處", "管理會計部", "專員"), ("集團會計事業體", "集團會計處", "", "處長"), ("集團會計事業體", "集團會計處", "集團合併報表部", "經副理"), ("集團會計事業體", "集團會計處", "集團合併報表部", "專員"), ("集團資訊事業體", "集團資訊事業體", "集團合併報表部", "資訊長"), ("集團資訊事業體", "資安行動小組", "集團合併報表部", "課長"), ("集團資訊事業體", "資訊一處", "應用系統部", "經副理"), ("集團資訊事業體", "資訊一處", "應用系統部", "工程師"), ("集團資訊事業體", "資訊一處", "電腦整合製造部", "經副理"), ("集團資訊事業體", "資訊一處", "電腦整合製造部", "工程師"), ("集團資訊事業體", "資訊一處", "系統網路服務部", "經副理"), ("集團資訊事業體", "資訊一處", "系統網路服務部", "工程師"), ("集團資訊事業體", "資訊二處", "", "處長"), ("新創事業體", "新創事業體", "", "處長"), ("新創事業體", "新創事業體", "資源管理部", "經副理"), ("新創事業體", "新創事業體", "資源管理部", "專員"), ("新創事業體", "中低壓產品研發處", "", "經副理"), ("新創事業體", "研發中心", "", "工程師"), ("新創事業體", "高壓產品研發處", "", "經副理"), ("新創事業體", "研發中心", "", "工程師"), ("稽核室", "稽核室", "", "主任"), ("稽核室", "稽核室", "", "專員"), ("總經理室", "總經理室", "", "總裁"), ("總經理室", "總經理室", "", "總經理"), ("總經理室", "ESG專案辦公室", "", "經副理"), ("總經理室", "ESG專案辦公室", "", "課長"), ("總經理室", "ESG專案辦公室", "", "專員/工程師"), ("總經理室", "專案管理室", "", "副總經理"), ("總經理室", "專案管理室", "", "經副理"), ("總經理室", "專案管理室", "", "專員/工程師"), ("總品質事業體", "總品質事業體", "", "處長"), ("總品質事業體", "總品質事業體", "客戶品質管理部", "經副理"), ("總品質事業體", "總品質事業體", "客戶品質管理部", "課長"), ("總品質事業體", "總品質事業體", "客戶品質管理部", "工程師"), ("總品質事業體", "總品質事業體", "客戶品質管理部", "專員"), ("總品質事業體", "總品質事業體", "產品品質管理部", "經副理"), ("總品質事業體", "總品質事業體", "產品品質管理部", "課長"), ("總品質事業體", "總品質事業體", "產品品質管理部", "工程師"), ("總品質事業體", "總品質事業體", "產品品質管理部", "班長"), ("總品質事業體", "總品質事業體", "產品品質管理部", "作業員"), ("總品質事業體", "總品質事業體", "品質系統及客戶工程整合部", "經副理"), ("總品質事業體", "總品質事業體", "品質系統及客戶工程整合部", "課長"), ("總品質事業體", "總品質事業體", "品質系統及客戶工程整合部", "工程師"), ("總品質事業體", "總品質事業體", "封測外包品質管理部", "經副理"), ("總品質事業體", "總品質事業體", "封測外包品質管理部", "課長"), ("總品質事業體", "總品質事業體", "封測外包品質管理部", "工程師"), ("總品質事業體", "總品質事業體", "品質保證部", "經副理"), ("總品質事業體", "總品質事業體", "品質保證部", "課長"), ("總品質事業體", "總品質事業體", "品質保證部", "工程師"), ("總品質事業體", "總品質事業體", "品質保證部", "班長"), ("總品質事業體", "總品質事業體", "品質保證部", "副班長"), ("總品質事業體", "總品質事業體", "品質保證部", "作業員"), ("營業事業體", "營業事業體", "品質保證部", "副總經理"), ("營業事業體", "營業事業體", "品質保證部", "副總經理助理"), ("營業事業體", "商業開發暨市場應用處", "", "處長"), ("營業事業體", "商業開發暨市場應用處", "", "經理"), ("營業事業體", "商業開發暨市場應用處", "", "工程師"), ("營業事業體", "海外銷售事業處", "", "處長"), ("營業事業體", "海外銷售事業處", "日本區暨代工業務部", "經副理"), ("營業事業體", "海外銷售事業處", "日本區暨代工業務部", "課長"), ("營業事業體", "海外銷售事業處", "日本區暨代工業務部", "專員"), ("營業事業體", "海外銷售事業處", "日本區暨代工業務部", "助理"), ("營業事業體", "海外銷售事業處", "歐亞區業務部", "經副理"), ("營業事業體", "海外銷售事業處", "歐亞區業務部", "課長"), ("營業事業體", "海外銷售事業處", "歐亞區業務部", "專員"), ("營業事業體", "海外銷售事業處", "歐亞區業務部", "助理"), ("營業事業體", "海外銷售事業處", "韓國區業務部-韓國區", "經副理"), ("營業事業體", "海外銷售事業處", "韓國區業務部-韓國區", "課長"), ("營業事業體", "海外銷售事業處", "韓國區業務部-韓國區", "專員"), ("營業事業體", "海外銷售事業處", "韓國區業務部-韓國區", "助理"), ("營業事業體", "海外銷售事業處", "韓國區業務部-韓國區", "專案經理"), ("營業事業體", "海外銷售事業處", "美洲區業務部", "經副理"), ("營業事業體", "海外銷售事業處", "美洲區業務部", "課長"), ("營業事業體", "海外銷售事業處", "美洲區業務部", "專員"), ("營業事業體", "海外銷售事業處", "美洲區業務部", "助理"), ("營業事業體", "全球技術服務處", "", "處長"), ("營業事業體", "全球技術服務處", "", "工程師"), ("營業事業體", "全球技術服務處", "", "助理"), ("營業事業體", "全球技術服務處", "應用工程部(GTS)", "經副理"), ("營業事業體", "全球技術服務處", "應用工程部(GTS)", "專案經副理"), ("營業事業體", "全球技術服務處", "應用工程部(GTS)", "技術經副理"), ("營業事業體", "全球技術服務處", "應用工程部(GTS)", "工程師"), ("營業事業體", "全球技術服務處", "系統工程部", "經副理"), ("營業事業體", "全球技術服務處", "系統工程部", "工程師"), ("營業事業體", "全球技術服務處", "特性測試部", "經副理"), ("營業事業體", "全球技術服務處", "特性測試部", "課長"), ("營業事業體", "全球技術服務處", "特性測試部", "工程師"), ("營業事業體", "全球行銷暨業務支援處", "", "副總經理"), ("營業事業體", "全球行銷暨業務支援處", "業務生管部", "經副理"), ("營業事業體", "全球行銷暨業務支援處", "業務生管部", "課長"), ("營業事業體", "全球行銷暨業務支援處", "業務生管部", "專員"), ("營業事業體", "全球行銷暨業務支援處", "市場行銷企劃部", "處長"), ("營業事業體", "全球行銷暨業務支援處", "市場行銷企劃部", "經理"), ("營業事業體", "全球行銷暨業務支援處", "市場行銷企劃部", "專員"), ("營業事業體", "全球行銷暨業務支援處", "MOSFET晶圓採購部", "經副理"), ("營業事業體", "全球行銷暨業務支援處", "MOSFET晶圓採購部", "課長"), ("營業事業體", "全球行銷暨業務支援處", "MOSFET晶圓採購部", "專員"), ("營業事業體", "大中華區銷售事業處", "", "處長"), ("營業事業體", "大中華區銷售事業處", "台灣區業務部", "專員"), ("營業事業體", "大中華區銷售事業處", "台灣區業務部", "助理"), ("營業事業體", "大中華區銷售事業處", "業務一部", "處長/資深經理"), ("營業事業體", "大中華區銷售事業處", "業務一部", "經副理"), ("營業事業體", "大中華區銷售事業處", "業務一部", "專員"), ("營業事業體", "大中華區銷售事業處", "業務一部", "助理"), ("營業事業體", "大中華區銷售事業處", "業務二部", "處長/資深經理"), ("營業事業體", "大中華區銷售事業處", "業務二部", "經副理"), ("營業事業體", "大中華區銷售事業處", "業務二部", "專員"), ("營業事業體", "大中華區銷售事業處", "業務二部", "助理"), ] # 建立結構化資料 HR_position_business_units = {} # 事業體 HR_position_divisions = {} # 處級單位 HR_position_departments = {} # 部級單位 HR_position_organization_positions = [] # 完整組織崗位關聯 # 關聯映射 businessToDivision = {} # 事業體 -> 處級單位列表 divisionToDepartment = {} # 處級單位 -> 部級單位列表 departmentToPosition = {} # 部級單位 -> 崗位列表 business_id = 1 division_id = 1 department_id = 1 position_id = 1 for business, division, department, position in raw_data: # 處理事業體 if business and business not in HR_position_business_units: HR_position_business_units[business] = { 'id': business_id, 'code': f'BU{str(business_id).zfill(3)}', 'name': business } business_id += 1 businessToDivision[business] = [] # 處理處級單位 if division and division not in HR_position_divisions: HR_position_divisions[division] = { 'id': division_id, 'code': f'DIV{str(division_id).zfill(3)}', 'name': division, 'business': business } division_id += 1 divisionToDepartment[division] = [] # 建立事業體到處級的關聯 if business and division and division not in businessToDivision.get(business, []): if business not in businessToDivision: businessToDivision[business] = [] businessToDivision[business].append(division) # 處理部級單位(可能為空) dept_key = department if department else f"(直屬){division}" if dept_key not in HR_position_departments: HR_position_departments[dept_key] = { 'id': department_id, 'code': f'DEPT{str(department_id).zfill(3)}', 'name': department if department else '(直屬)', 'division': division } department_id += 1 departmentToPosition[dept_key] = [] # 建立處級到部級的關聯 if division and dept_key not in divisionToDepartment.get(division, []): if division not in divisionToDepartment: divisionToDepartment[division] = [] divisionToDepartment[division].append(dept_key) # 處理崗位(去重) if position and position not in departmentToPosition.get(dept_key, []): departmentToPosition[dept_key].append(position) # 建立完整組織崗位關聯 HR_position_organization_positions.append({ 'id': position_id, 'business': business, 'division': division, 'department': department if department else '(直屬)', 'position': position }) position_id += 1 return { 'HR_position_business_units': HR_position_business_units, 'HR_position_divisions': HR_position_divisions, 'HR_position_departments': HR_position_departments, 'HR_position_organization_positions': HR_position_organization_positions, 'businessToDivision': businessToDivision, 'divisionToDepartment': divisionToDepartment, 'departmentToPosition': departmentToPosition } if __name__ == '__main__': # 測試 data = import_to_memory() print(f"事業體數量: {len(data['HR_position_business_units'])}") print(f"處級單位數量: {len(data['HR_position_divisions'])}") print(f"部級單位數量: {len(data['HR_position_departments'])}") print(f"組織崗位關聯數量: {len(data['HR_position_organization_positions'])}") print() print("事業體列表:") for name, info in data['HR_position_business_units'].items(): print(f" - {info['id']}: {name}")