62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
#ifndef ODF_MANAGEMENT_PROJECT_MILESTONE_HPP
|
||
#define ODF_MANAGEMENT_PROJECT_MILESTONE_HPP
|
||
|
||
#include <string>
|
||
#include <cstdint>
|
||
|
||
/// @brief 里程碑阶段枚举
|
||
enum class MilestoneStage : uint8_t {
|
||
Requirements = 0, ///< 需求确认
|
||
DesignReview = 1, ///< 设计评审
|
||
Prototype = 2, ///< 样机测试
|
||
Verification = 3, ///< 验证测试
|
||
Delivery = 4 ///< 批量交付
|
||
};
|
||
|
||
/**
|
||
* @brief 项目里程碑信息
|
||
*
|
||
* 记录 ODF 项目各关键节点的计划时间、负责人与完成状态。
|
||
* 约束:样机测试不得晚于第 6 周,最终交付不迟于第 12 周。
|
||
*/
|
||
struct ProjectMilestone {
|
||
MilestoneStage stage; ///< 阶段名称
|
||
uint32_t weekStart; ///< 计划开始周(从项目启动算起,第 1 周起)
|
||
uint32_t weekEnd; ///< 计划结束周
|
||
std::string owner; ///< 负责人
|
||
bool completed; ///< 完成状态(true 已完成)
|
||
|
||
/**
|
||
* @brief 构造项目里程碑
|
||
* @param stage 阶段
|
||
* @param weekStart 计划开始周
|
||
* @param weekEnd 计划结束周
|
||
* @param owner 负责人
|
||
* @param completed 是否完成
|
||
*/
|
||
ProjectMilestone(MilestoneStage stage,
|
||
uint32_t weekStart,
|
||
uint32_t weekEnd,
|
||
std::string owner,
|
||
bool completed);
|
||
|
||
/// @brief 默认构造函数
|
||
ProjectMilestone() = default;
|
||
|
||
/// @brief 阶段名称字符串
|
||
[[nodiscard]] std::string stageString() const;
|
||
|
||
/// @brief 返回里程碑摘要
|
||
[[nodiscard]] std::string summary() const;
|
||
|
||
/**
|
||
* @brief 检查时间约束是否满足
|
||
* @return 满足返回 true
|
||
*
|
||
* 规则:样机测试(Prototype)结束周 ≤ 6,交付(Delivery)结束周 ≤ 12
|
||
*/
|
||
[[nodiscard]] bool checkTimeConstraint() const;
|
||
};
|
||
|
||
#endif // ODF_MANAGEMENT_PROJECT_MILESTONE_HPP
|