You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.5 KiB

/**
* 培训管理接口
* 体现接口隔离原则,定义培训相关的核心功能
*/
package com.employeetraining.training;
import java.time.LocalDate;
import java.util.List;
import java.util.Optional;
public interface TrainingManager {
/**
* 创建培训记录
*/
void createTrainingRecord(TrainingRecord record);
/**
* 更新培训状态
*/
boolean updateTrainingStatus(String recordId, TrainingRecord.TrainingStatus status);
/**
* 更新培训成绩
*/
boolean updateTrainingScore(String recordId, double score);
/**
* 完成培训
*/
boolean completeTraining(String recordId, double score, String feedback);
/**
* 根据ID查找培训记录
*/
Optional<TrainingRecord> findTrainingRecordById(String recordId);
/**
* 根据员工ID查找培训记录
*/
List<TrainingRecord> findTrainingRecordsByEmployeeId(String employeeId);
/**
* 根据课程ID查找培训记录
*/
List<TrainingRecord> findTrainingRecordsByCourseId(String courseId);
/**
* 根据状态查找培训记录
*/
List<TrainingRecord> findTrainingRecordsByStatus(TrainingRecord.TrainingStatus status);
/**
* 查找在指定日期范围内完成的培训
*/
List<TrainingRecord> findCompletedTrainingsByDateRange(LocalDate startDate, LocalDate endDate);
/**
* 获取所有培训记录
*/
List<TrainingRecord> getAllTrainingRecords();
}