feat: 新增员工行为画像算法与费用风险标签体系
后端新增员工行为画像算法模块,支持标签规则引擎和评分计算, 完善员工模型、银行信息、序列化和导入逻辑,优化报销审批流 和工作流常量,增强 Hermes 同步和知识同步能力,前端新增费 用画像详情弹窗、雷达图和风险卡片组件,完善登录页和工作台 样式,优化文档中心和归档中心交互,补充单元测试。
This commit is contained in:
25
server/src/app/services/employee_schema.py
Normal file
25
server/src/app/services/employee_schema.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from sqlalchemy import inspect, text
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
EMPLOYEE_SCHEMA_COLUMNS: dict[str, str] = {
|
||||
"password_hash": "ALTER TABLE employees ADD COLUMN password_hash VARCHAR(255)",
|
||||
"compliance_score": "ALTER TABLE employees ADD COLUMN compliance_score INTEGER DEFAULT 100 NOT NULL",
|
||||
"bank_name": "ALTER TABLE employees ADD COLUMN bank_name VARCHAR(120)",
|
||||
"bank_account_no": "ALTER TABLE employees ADD COLUMN bank_account_no VARCHAR(80)",
|
||||
"bank_account_name": "ALTER TABLE employees ADD COLUMN bank_account_name VARCHAR(100)",
|
||||
}
|
||||
|
||||
|
||||
def ensure_employee_schema(db: Session) -> None:
|
||||
bind = db.get_bind()
|
||||
inspector = inspect(bind)
|
||||
if "employees" not in inspector.get_table_names():
|
||||
return
|
||||
|
||||
column_names = {column["name"] for column in inspector.get_columns("employees")}
|
||||
for column_name, ddl in EMPLOYEE_SCHEMA_COLUMNS.items():
|
||||
if column_name not in column_names:
|
||||
db.execute(text(ddl))
|
||||
db.flush()
|
||||
Reference in New Issue
Block a user