gaoluyang
6 小时以前 c22dd7309bbf7b162f4580cf55e9f26cc171d1c7
修复考勤汇总生成与新增节假日报错

- 生成考勤统计报系统异常:hrm_attendance_summary.year_month 是 MySQL 保留字,
DO 上加反引号;同时 generate 流程调用 getEmployeeList(null) 会触发
selectByIds(null) 的 OGNL 异常,改为 null 查全员、空集合返回空
- 新增节假日报系统异常:isLegal 前端传布尔、后端 VO 是 Integer,
改为 Boolean 并在服务层显式转 0/1

Co-Authored-By: Claude Code <noreply@anthropic.com>
已修改4个文件
21 ■■■■■ 文件已修改
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceHolidaySaveReqVO.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/attendance/HrmAttendanceSummaryDO.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceHolidaySaveReqVO.java
@@ -26,8 +26,8 @@
    @NotNull(message = "类型不能为空")
    private Integer type;
    @Schema(description = "是否法定节假日:0-否,1-是", example = "1")
    private Integer isLegal;
    @Schema(description = "是否法定节假日:false-否,true-是(兼容 0/1 数字)", example = "true")
    private Boolean isLegal;
    @Schema(description = "备注", example = "春节假期")
    private String remark;
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/attendance/HrmAttendanceSummaryDO.java
@@ -2,6 +2,7 @@
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
@@ -43,7 +44,10 @@
    /**
     * 年月,格式:yyyy-MM
     *
     * year_month 是 MySQL 保留字(INTERVAL 单位),不加反引号会报 SQL 语法错误
     */
    @TableField("`year_month`")
    private String yearMonth;
    /**
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceHolidayServiceImpl.java
@@ -35,9 +35,7 @@
        // 校验日期是否已存在配置
        validateAttendanceHolidayDateExists(createReqVO.getDate());
        HrmAttendanceHolidayDO attendanceHoliday = BeanUtils.toBean(createReqVO, HrmAttendanceHolidayDO.class);
        if (attendanceHoliday.getIsLegal() == null) {
            attendanceHoliday.setIsLegal(0);
        }
        attendanceHoliday.setIsLegal(Boolean.TRUE.equals(createReqVO.getIsLegal()) ? 1 : 0);
        attendanceHolidayMapper.insert(attendanceHoliday);
        return attendanceHoliday.getId();
    }
@@ -51,6 +49,7 @@
            validateAttendanceHolidayDateExists(updateReqVO.getDate());
        }
        HrmAttendanceHolidayDO updateObj = BeanUtils.toBean(updateReqVO, HrmAttendanceHolidayDO.class);
        updateObj.setIsLegal(Boolean.TRUE.equals(updateReqVO.getIsLegal()) ? 1 : 0);
        attendanceHolidayMapper.updateById(updateObj);
    }
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -340,6 +340,14 @@
    @Override
    public List<HrmEmployeeDO> getEmployeeList(Collection<Long> ids) {
        // ids 为 null 时表示查询全部员工(考勤汇总、薪酬核算等批量场景依赖此语义);
        // 显式传入空集合时返回空,避免误查全员
        if (ids == null) {
            return employeeMapper.selectList(null);
        }
        if (ids.isEmpty()) {
            return Collections.emptyList();
        }
        return employeeMapper.selectByIds(ids);
    }