yubo
2026-03-27 0960e84f87af09990397cb38801bdfd40a2c2d36
fix(hr): 修复保险提醒年龄范围判断逻辑

- 移除未使用的变量 startDate
- 添加最大年龄限制 maxAge,男性为50岁,女性为40岁
- 修改提醒日期判断条件,增加结束日期必须早于最大日期的限制
- 优化提醒列表过滤逻辑,避免超过最大年龄的记录提醒
1个文件已修改
5 ■■■■■ 已修改文件
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -1585,7 +1585,6 @@
    private List<EmpBaseInfo> findInsuranceAlertList(EmpBaseInfo empBaseInfo, QueryRequest request) {
        // 1. 计算时间范围
        LocalDate[] dateRange = calculateDateRange(empBaseInfo.getTimeRange());
        LocalDate startDate = dateRange[0];
        LocalDate endDate = dateRange[1];
        // 2. 获取提醒年龄配置
@@ -1624,12 +1623,14 @@
                    }
                    int alertAge = "1".equals(emp.getSex()) ? alertManAge : alertWomanAge;
                    int maxAge = "1".equals(emp.getSex()) ? 50 : 40;
                    LocalDate birthDate = emp.getBirthdate().toInstant()
                            .atZone(ZoneId.systemDefault())
                            .toLocalDate();
                    LocalDate alertDate = birthDate.plusYears(alertAge);
                    LocalDate maxDate = birthDate.plusYears(maxAge);
                    return !alertDate.isAfter(endDate);
                    return !alertDate.isAfter(endDate) && endDate.isBefore(maxDate);
                })
                .collect(Collectors.toList());
    }