Files
X-Financial/server/src/app/services/employee_seed_organizations.py
caoxiaozhu 0e861d8fa6 feat: 增强风险规则生成引擎与预算中心页面
后端拆分风险规则生成为解释器、语义分析、本体对齐等子模块,
优化模板执行和流程图生成,完善员工种子数据和导入逻辑,增强
报销单权限策略和草稿持久化,前端新增预算中心视图和趋势图
组件,重构审计页面和风险规则测试对话框交互,完善文档中心
和报销创建页面细节,补充单元测试覆盖。
2026-05-26 09:15:14 +08:00

114 lines
2.9 KiB
Python

from __future__ import annotations
ORGANIZATION_DEFINITIONS = [
{
"unit_code": "ORG-ROOT",
"name": "星海科技",
"unit_type": "company",
"parent_code": None,
"cost_center": "CC-0000",
"location": "上海",
"manager_name": "李文静",
},
{
"unit_code": "TECH-DEPT",
"name": "技术部",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-6100",
"location": "北京",
"manager_name": "吴磊",
},
{
"unit_code": "MARKET-DEPT",
"name": "市场部",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-4100",
"location": "上海",
"manager_name": "刘思雨",
},
{
"unit_code": "FINANCE-DEPT",
"name": "财务部",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-2100",
"location": "上海",
"manager_name": "张晓晴",
},
{
"unit_code": "HR-DEPT",
"name": "人力资源部",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-3200",
"location": "杭州",
"manager_name": "陈硕",
},
{
"unit_code": "PRODUCTION-DEPT",
"name": "生产部",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-7200",
"location": "南京",
"manager_name": "梁雨辰",
},
{
"unit_code": "PRESIDENT-OFFICE",
"name": "总裁办",
"unit_type": "department",
"parent_code": "ORG-ROOT",
"cost_center": "CC-1000",
"location": "上海",
"manager_name": "李文静",
},
]
CANONICAL_DEPARTMENT_CODES = (
"TECH-DEPT",
"MARKET-DEPT",
"FINANCE-DEPT",
"HR-DEPT",
"PRODUCTION-DEPT",
"PRESIDENT-OFFICE",
)
LEGACY_ORGANIZATION_UNIT_CODE_MAP = {
"RND-CENTER": "TECH-DEPT",
"SALES-SOUTH": "MARKET-DEPT",
"SALES-EAST": "MARKET-DEPT",
"MKT-BRAND": "MARKET-DEPT",
"FIN-SSC": "FINANCE-DEPT",
"AUDIT-RISK": "FINANCE-DEPT",
"HR-OD": "HR-DEPT",
"OPS-ADMIN": "PRODUCTION-DEPT",
"EXEC-OFFICE": "PRESIDENT-OFFICE",
}
def normalize_organization_unit_code(unit_code: str | None) -> str | None:
if not unit_code:
return unit_code
return LEGACY_ORGANIZATION_UNIT_CODE_MAP.get(unit_code, unit_code)
EMPLOYEE_PROFILE_REPAIRS = [
{
"employee_no": "E90919",
"name": "曹笑竹",
"email": "caoxiaozhu@xf.com",
"location": "武汉",
"position": "财务智能化产品经理",
"grade": "P5",
"organization_unit_code": "TECH-DEPT",
"manager_employee_no": "E11745",
"finance_owner_name": "研发财务BP",
"cost_center": "CC-6112",
"employment_status": "在职",
"sync_state": "已同步",
"role_codes": ["user"],
},
]