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
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();
|
|
} |