yubo
2026-03-31 09c6b3b6fc4ee6b1bc9fa1a6d3da3044729fc95a
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -655,7 +655,6 @@
            }
            empBaseInfo.setDelFlag(2);
            // 入职类型
            dicItem = dicItems.parallelStream().filter(j -> StrUtil.equalsIgnoreCase(j.getDicCode(), "lztype") && StrUtil.equals(j.getDicItemName(), list.get(31).toString())).findFirst().orElse(null);
@@ -1488,7 +1487,7 @@
    @Override
    public void updateAnnualLeave(String userId) {
        EmpBaseInfo empBaseInfo = this.getById(userId);
        int holiday = calculateHoliday(empBaseInfo.getEntryDate());
        int holiday = calculateHoliday(empBaseInfo.getEntryDate(), empBaseInfo.getEmpStatus());
        empBaseInfo.setAnnualLeave(holiday);
        baseMapper.update(null, new LambdaUpdateWrapper<EmpBaseInfo>()
                .set(EmpBaseInfo::getAnnualLeave, holiday)
@@ -1499,7 +1498,7 @@
    public void updateAnnualLeave() {
        List<EmpBaseInfo> list = this.list();
        list.parallelStream().forEach(p -> {
            int holiday = calculateHoliday(p.getEntryDate());
            int holiday = calculateHoliday(p.getEntryDate(), p.getEmpStatus());
            p.setAnnualLeave(holiday);
            baseMapper.update(null, new LambdaUpdateWrapper<EmpBaseInfo>()
                    .set(EmpBaseInfo::getAnnualLeave, holiday)
@@ -1511,7 +1510,7 @@
    public void updateEmpBaseKeyInfo() {
        List<EmpBaseInfo> list = this.list();
        list.parallelStream().forEach(p -> {
            int holiday = calculateHoliday(p.getEntryDate());
            int holiday = calculateHoliday(p.getEntryDate(), p.getEmpStatus());
            int age = calculateAge(p.getBirthdate());
            baseMapper.update(null, new LambdaUpdateWrapper<EmpBaseInfo>()
@@ -1574,6 +1573,7 @@
    public Long countInsuranceAlert(EmpBaseInfo empBaseInfo, QueryRequest request) {
        return (long) findInsuranceAlertList(empBaseInfo,request).size();
    }
    /**
     * 查询社保档位提醒员工列表
     * 保险类型:6-(非深户) 四险二档 7-(非深户) 四险一档 10-外参 13-临时工意外险 14-甲方购买
@@ -1722,9 +1722,11 @@
     * 根据设置的参数计算员工的年假
     *
     * @param date 入职日期
     * @param empStatus 人员状态(0-正常 1-离职 2-退休)只计算在职的
     * @return 年假天数
     */
    private int calculateHoliday(Date date) {
    private int calculateHoliday(Date date, String empStatus) {
        if (!empStatus.equals("0")) {
        int holiday = 0;
        int joinYear = DateUtil.ageOfNow(date);
        String configValue = redisService.get("annual_leave").toString();
@@ -1741,6 +1743,9 @@
            }
        }
        return holiday;
        } else {
            return 0;
        }
    }
    private int calculateAge(Date date) {
@@ -1872,6 +1877,7 @@
    /**
     * 根据时间范围类型计算开始和结束日期
     *
     * @param timeRange 0-当天 1-本周 2-本月 3-今年
     * @return 包含开始日期和结束日期的数组 [startDate, endDate)
     */