feat: Phase 1-3 优化全部完成
Phase 1 紧急修复(8项): - 社保城市选择改为可输入 - 社保上下限拆分(三险/医保独立基数) - 公积金试算结果展示修复 - 花名册合同保存修复(日期ISO格式) - 薪酬批次创建失败修复(城市过滤+错误处理) - 证据链查看修复 - 个税计算修复(blank_employees读取基本工资) - 加班费倍率读取配置 Phase 2 功能完善(3项): - 批量导入per-row异常捕获+导入按钮 - 单人发薪UI入口优化 - 解除协议模板补充(员工提出离职版) Phase 3 后期规划(4项): - 工资表导入功能(POST /import/payroll + 前端入口) - 大病险/长护险附加险种(extraInsurances JSON + 计算适配) - 专项附加扣除按月录入(SpecialDeductionRecord模型 + 前端Tab) - 预置河北省社保政策(seed数据)
This commit is contained in:
@@ -165,6 +165,7 @@ model Organization {
|
||||
policyReadRecords PolicyReadRecord[]
|
||||
healthCheckReports HealthCheckReport[]
|
||||
annualValueReports AnnualValueReport[]
|
||||
specialDeductionRecords SpecialDeductionRecord[]
|
||||
}
|
||||
|
||||
model User {
|
||||
@@ -240,6 +241,7 @@ model Employee {
|
||||
evidenceChains EvidenceChain[]
|
||||
attendanceConfirmations AttendanceConfirmation[]
|
||||
policyReadRecords PolicyReadRecord[]
|
||||
specialDeductionRecords SpecialDeductionRecord[]
|
||||
|
||||
@@unique([orgId, idCardHash])
|
||||
}
|
||||
@@ -386,8 +388,11 @@ model SocialInsuranceConfig {
|
||||
unemploymentEmp Float @default(0.5) // 失业保险 个人比例 %
|
||||
injuryOrg Float @default(0.2) // 工伤保险 企业比例 %
|
||||
maternityOrg Float @default(0.8) // 生育保险 企业比例 %
|
||||
baseMin Float @default(6326) // 社保缴费基数下限
|
||||
baseMax Float @default(33891) // 社保缴费基数上限
|
||||
baseMin Float @default(6326) // 社保缴费基数下限(养老/失业/工伤)
|
||||
baseMax Float @default(33891) // 社保缴费基数上限(养老/失业/工伤)
|
||||
medicalBaseMin Float @default(0) // 医疗/生育保险基数下限(0 时 fallback 到 baseMin)
|
||||
medicalBaseMax Float @default(0) // 医疗/生育保险基数上限(0 时 fallback 到 baseMax)
|
||||
extraInsurances Json? // 附加险种配置 JSON: [{ name, orgRate, empRate, baseType: 'pension'|'medical'|'fixed', fixedAmount }]
|
||||
effectiveFrom String // 生效月份 YYYY-MM
|
||||
effectiveTo String? // 失效月份 YYYY-MM(null=当前有效)
|
||||
isCurrent Boolean @default(true) // 是否当前生效版本
|
||||
@@ -1017,3 +1022,26 @@ model AnnualValueReport {
|
||||
@@index([orgId, year])
|
||||
@@index([orgId, createdAt])
|
||||
}
|
||||
|
||||
// 专项附加扣除按月记录
|
||||
model SpecialDeductionRecord {
|
||||
id String @id @default(cuid())
|
||||
orgId String
|
||||
org Organization @relation(fields: [orgId], references: [id], onDelete: Cascade)
|
||||
employeeId String
|
||||
employee Employee @relation(fields: [employeeId], references: [id], onDelete: Cascade)
|
||||
month String // YYYY-MM 月份
|
||||
amount Float @default(0) // 专项附加扣除总额
|
||||
children Float @default(0) // 子女教育
|
||||
elderly Float @default(0) // 赡养老人
|
||||
housing Float @default(0) // 住房贷款利息/住房租金
|
||||
education Float @default(0) // 继续教育
|
||||
infant Float @default(0) // 3岁以下婴幼儿照护
|
||||
remark String?
|
||||
createdBy String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([employeeId, month])
|
||||
@@index([orgId, month])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user