package com.guo.learningprogresstracker.utils; import com.guo.learningprogresstracker.dto.PriorityDto; /** * 加权优先级计算工具 */ public class CalculatedPriorityTool { /** * 通过用户选择的5个选项,结合定义的权重计算任务的加权优先级。 * 急迫性 (Urgency) * 急迫性代表任务的紧急程度。权重:0.35 *
* 重要性 (Importance) * 重要性指示任务的重要程度。权重:0.25 *
* 内容难度 (Content Difficulty) * 内容难度衡量任务内容的复杂性。权重:0.20 *
* 未来价值 (Future Value) * 未来价值估计完成任务的长期价值。权重:0.10 *
* 主观优先级 (Subjective Priority) * 主观优先级是用户对任务优先级的个人评估。权重:0.10 * * @param priorityDto * @return */ public static Double calculatedPriority(PriorityDto priorityDto) { // 暂时写死权重,也许可以考虑让用户自行配置权重 return (priorityDto.getUrgency() * 0.35) + (priorityDto.getImportance() * 0.25) + (priorityDto.getContentDifficulty() * 0.20) + (priorityDto.getFutureValue() * 0.10) + (priorityDto.getSubjectivePriority() * 0.10); } }