feat: 绩效系数配置化 + 工作台社保公积金评分修复

- Organization 新增 defaultGradeCoefficients 字段,系统设置可配置缺省绩效系数
- 绩效记录编辑时自动带出系数(优先模板 gradeRules,回退组织缺省配置)
- 薪资计算优先用记录 coefficient,回退模板/组织缺省/硬编码默认值
- 绩效模板表单新增等级系数设置区域
- 修复工作台社保公积金评分为0:查询从旧表 SocialInsuranceConfig 改为 SocialYearStandard
- 修复 employeesNoSocial 计算逻辑:只统计有正式劳动合同(FIXED/UNFIXED)但无社保记录的员工
- 社保账户未设置 paymentDay 时回退到 Organization.socialInsCutoffDay 生成月度任务
- 合规健康度各维度补充 todoCount 字段

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
selfrelease
2026-08-19 15:16:06 +08:00
parent 81e136b707
commit f9324d4299
8 changed files with 245 additions and 39 deletions
+2
View File
@@ -141,6 +141,7 @@ model Organization {
esignPerformanceEnabled Boolean @default(false) // 绩效考核电子签
esignDisciplinaryEnabled Boolean @default(false) // 违纪记录电子签
socialInsCutoffDay Int @default(15) // 社保/公积金截止日:每月该日前离职→截止月=离职月-1,该日后→截止月=离职月
defaultGradeCoefficients Json? @default("{\"A\":1.2,\"B\":1.0,\"C\":0.8,\"D\":0.6}") // 缺省绩效系数(不选模板时使用)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -801,6 +802,7 @@ model PerformanceRecord {
periodType String @default("MONTHLY") // MONTHLY/QUARTERLY/YEARLY
score Float @default(0) // 考核得分
grade String @default("B") // A/B/C/D
coefficient Float @default(1.0) // 绩效系数(A=1.2, B=1.0, C=0.8, D=0.6,可手动调整)
result String @default("QUALIFIED") // EXCELLENT/QUALIFIED/NEED_IMPROVE/UNQUALIFIED
summary String? // 考核评语
improvementPlan String? // 改进计划(不胜任时)