feat: 优化退休提醒功能 - 个性化退休年龄计算

- 添加 FemaleWorkerType enum (CADRE/WORKER) 和 Employee.femaleWorkerType 字段
- 新增 calcIndividualRetireAge: 按个人出生日期逐人计算退休年龄
- 重写 calcRetirementDaysLeft: 基于个人出生日期+性别+岗位类型
- updateEmployeesRetirementDays 使用 femaleWorkerType 区分女干部/女工人
- 前端新增/编辑员工表单添加女性岗位类型选择器
- 前端政策展示改为改革规则卡片(基准→目标年龄)
- 前端距退休天数改为退休日期显示(XXXX年XX月XX日)
- 移除AI退休政策计算相关代码和手动刷新路由
- 导入支持女性岗位类型列
This commit is contained in:
freedakgmail
2026-07-25 09:27:45 +08:00
parent b892df1d52
commit 41a2c665ed
9 changed files with 208 additions and 277 deletions
+2
View File
@@ -6,6 +6,7 @@ export const createEmployeeSchema = z.object({
hireDate: z.string().datetime(),
monthlySalary: z.string().min(1, '月薪不能为空'),
gender: z.enum(['男', '女']).optional(),
femaleWorkerType: z.enum(['CADRE', 'WORKER']).optional(),
phone: z.string().regex(/^1[3-9]\d{9}$/).optional(),
isPregnant: z.boolean().default(false),
isInMedicalPeriod: z.boolean().default(false),
@@ -29,6 +30,7 @@ export const updateEmployeeSchema = z.object({
hireDate: z.string().datetime().optional(),
monthlySalary: z.string().min(1).optional(),
gender: z.enum(['男', '女']).optional(),
femaleWorkerType: z.enum(['CADRE', 'WORKER']).optional(),
phone: z.string().regex(/^1[3-9]\d{9}$/).optional(),
bankName: z.string().max(50).optional(),
bankAccount: z.string().max(30).optional(),