package cn.iocoder.yudao.module.hrm.service.training;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.hrm.controller.admin.training.vo.HrmTrainingPageReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.training.vo.HrmTrainingParticipantUpdateReqVO;
|
import cn.iocoder.yudao.module.hrm.controller.admin.training.vo.HrmTrainingSaveReqVO;
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.training.HrmTrainingDO;
|
import cn.iocoder.yudao.module.hrm.dal.dataobject.training.HrmTrainingParticipantDO;
|
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* HRM 培训活动 Service 接口
|
*
|
* <p>管理安全培训、技能培训等培训计划与参训/考核结果;培训完成时对合格人员联动生成证书资质。
|
*
|
* @author 超级管理员
|
*/
|
public interface HrmTrainingService {
|
|
/**
|
* 创建培训活动
|
*
|
* @param createReqVO 创建信息
|
* @return 培训活动ID
|
*/
|
Long createTraining(HrmTrainingSaveReqVO createReqVO);
|
|
/**
|
* 更新培训活动(仅草稿/待开展可改,且不改状态)
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateTraining(HrmTrainingSaveReqVO updateReqVO);
|
|
/**
|
* 删除培训活动(级联删除参训人员;已完成/已取消不可删)
|
*
|
* @param ids 培训活动ID集合
|
*/
|
void deleteTraining(Collection<Long> ids);
|
|
/**
|
* 获得培训活动
|
*
|
* @param id 培训活动ID
|
* @return 培训活动
|
*/
|
HrmTrainingDO getTraining(Long id);
|
|
/**
|
* 获得培训活动分页
|
*
|
* @param pageReqVO 分页查询
|
* @return 培训活动分页
|
*/
|
PageResult<HrmTrainingDO> getTrainingPage(HrmTrainingPageReqVO pageReqVO);
|
|
/**
|
* 开始培训(草稿 → 待开展)
|
*
|
* @param id 培训活动ID
|
*/
|
void startTraining(Long id);
|
|
/**
|
* 完成培训(待开展/草稿 → 已完成),完成时对合格人员联动自动发证
|
*
|
* @param id 培训活动ID
|
*/
|
void completeTraining(Long id);
|
|
/**
|
* 取消培训(草稿/待开展 → 已取消)
|
*
|
* @param id 培训活动ID
|
*/
|
void cancelTraining(Long id);
|
|
/**
|
* 添加参训员工(自动跳过已在名单中的员工)
|
*
|
* @param trainingId 培训活动ID
|
* @param employeeIds 员工ID集合
|
* @return 实际新增数量
|
*/
|
int addParticipants(Long trainingId, Collection<Long> employeeIds);
|
|
/**
|
* 更新参训记录(参加情况/成绩/是否合格)
|
*
|
* @param updateReqVO 更新信息
|
*/
|
void updateParticipant(HrmTrainingParticipantUpdateReqVO updateReqVO);
|
|
/**
|
* 删除参训记录
|
*
|
* @param ids 参训记录ID集合
|
*/
|
void deleteParticipants(Collection<Long> ids);
|
|
/**
|
* 获得某次培训的全部参训记录
|
*
|
* @param trainingId 培训活动ID
|
* @return 参训记录列表
|
*/
|
List<HrmTrainingParticipantDO> getParticipantsByTrainingId(Long trainingId);
|
|
/**
|
* 批量统计各培训活动的参训人数(分页列表展示用)
|
*
|
* @param trainingIds 培训活动ID集合
|
* @return 培训活动ID → 参训人数
|
*/
|
Map<Long, Integer> getParticipantCountMap(Collection<Long> trainingIds);
|
|
}
|