39 lines
1.3 KiB
Java
39 lines
1.3 KiB
Java
package com.guo.learningprogresstracker.utils;
|
|
|
|
import com.guo.learningprogresstracker.dto.PriorityDto;
|
|
|
|
/**
|
|
* 加权优先级计算工具
|
|
*/
|
|
public class CalculatedPriorityTool {
|
|
|
|
/**
|
|
* 通过用户选择的5个选项,结合定义的权重计算任务的加权优先级。
|
|
* 急迫性 (Urgency)
|
|
* 急迫性代表任务的紧急程度。权重:0.35
|
|
* <p>
|
|
* 重要性 (Importance)
|
|
* 重要性指示任务的重要程度。权重:0.25
|
|
* <p>
|
|
* 内容难度 (Content Difficulty)
|
|
* 内容难度衡量任务内容的复杂性。权重:0.20
|
|
* <p>
|
|
* 未来价值 (Future Value)
|
|
* 未来价值估计完成任务的长期价值。权重:0.10
|
|
* <p>
|
|
* 主观优先级 (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);
|
|
}
|
|
}
|