package cn.iocoder.yudao.module.hrm.dal.mysql.training; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.hrm.dal.dataobject.training.HrmTrainingParticipantDO; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; /** * HRM 培训参训人员 Mapper * * @author 超级管理员 */ @Mapper public interface HrmTrainingParticipantMapper extends BaseMapperX { /** * 查询某次培训的全部参训人员 * * @param trainingId 培训活动编号 * @return 参训人员列表 */ default List selectListByTrainingId(Long trainingId) { return selectList(new LambdaQueryWrapperX() .eq(HrmTrainingParticipantDO::getTrainingId, trainingId) .orderByAsc(HrmTrainingParticipantDO::getId)); } /** * 批量查询指定培训的参训人员(分页统计参训人数用) * * @param trainingIds 培训活动编号集合 * @return 参训人员列表 */ default List selectListByTrainingIds(Collection trainingIds) { return selectList(new LambdaQueryWrapperX() .in(HrmTrainingParticipantDO::getTrainingId, trainingIds)); } /** * 查询某次培训下某位员工的参训记录(防重复添加用) * * @param trainingId 培训活动编号 * @param employeeId 员工编号 * @return 参训记录,无则返回 null */ default HrmTrainingParticipantDO selectByTrainingIdAndEmployeeId(Long trainingId, Long employeeId) { return selectOne(new LambdaQueryWrapperX() .eq(HrmTrainingParticipantDO::getTrainingId, trainingId) .eq(HrmTrainingParticipantDO::getEmployeeId, employeeId)); } /** * 删除某次培训的全部参训人员(培训删除时级联) * * @param trainingId 培训活动编号 */ default void deleteByTrainingId(Long trainingId) { delete(new LambdaQueryWrapperX() .eq(HrmTrainingParticipantDO::getTrainingId, trainingId)); } /** * 回写联动生成的证书编号 * * @param id 参训人员编号 * @param certificateId 证书资质编号 */ default void updateCertificateId(Long id, Long certificateId) { update(null, new LambdaUpdateWrapper() .eq(HrmTrainingParticipantDO::getId, id) .set(HrmTrainingParticipantDO::getCertificateId, certificateId)); } }