gaoluyang
5 天以前 8e580aad93b43d5a310a3e35788ec2acb3791c30
fix(hrm): 修复生成考勤统计时员工列表查询为空导致 500

全量/按部门生成考勤统计时调用 getEmployeeList(null),MyBatis-Plus
生成的 foreach collection="coll" 参数为 null 抛出 BuilderException。
新增按状态查询员工列表接口,生成逻辑改用该接口;getEmployeeList
对空集合返回空列表,避免再拼出非法 SQL。

Co-Authored-By: Claude Code <noreply@anthropic.com>
已修改3个文件
24 ■■■■■ 文件已修改
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceSummaryServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | 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/service/attendance/HrmAttendanceSummaryServiceImpl.java
@@ -129,8 +129,8 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void generateDeptMonthlySummary(Long deptId, String yearMonth) {
        // 获取部门所有在职员工
        List<HrmEmployeeDO> employees = employeeService.getEmployeeList(null);
        // 获取部门所有员工(未指定员工状态时查询全部)
        List<HrmEmployeeDO> employees = employeeService.getEmployeeListByStatus(null);
        if (CollUtil.isEmpty(employees)) {
            return;
        }
@@ -146,8 +146,8 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void generateAllMonthlySummary(String yearMonth) {
        // 获取所有在职员工
        List<HrmEmployeeDO> employees = employeeService.getEmployeeList(null);
        // 获取所有员工(未指定员工状态时查询全部)
        List<HrmEmployeeDO> employees = employeeService.getEmployeeListByStatus(null);
        if (CollUtil.isEmpty(employees)) {
            return;
        }
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java
@@ -85,6 +85,14 @@
    List<HrmEmployeeDO> getEmployeeList(Collection<Long> ids);
    /**
     * 获得指定状态的员工列表
     *
     * @param employeeStatus 员工状态,为 null 时查询全部
     * @return 员工列表
     */
    List<HrmEmployeeDO> getEmployeeListByStatus(Integer employeeStatus);
    /**
     * 获得指定状态的员工简单列表
     *
     * @param employeeStatus 员工状态,为 null 时查询全部
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -356,10 +356,18 @@
    @Override
    public List<HrmEmployeeDO> getEmployeeList(Collection<Long> ids) {
        if (CollUtil.isEmpty(ids)) {
            return Collections.emptyList();
        }
        return employeeMapper.selectByIds(ids);
    }
    @Override
    public List<HrmEmployeeDO> getEmployeeListByStatus(Integer employeeStatus) {
        return employeeMapper.selectListByStatus(employeeStatus);
    }
    @Override
    public List<HrmEmployeeSimpleRespVO> getEmployeeSimpleList(Integer employeeStatus) {
        List<HrmEmployeeDO> list = employeeMapper.selectListByStatus(employeeStatus);
        // 填充部门名称