123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #ifndef SCHEMEPLANMANAGER_H
- #define SCHEMEPLANMANAGER_H
- #include <QObject>
- class SchemePlanManager : public QObject
- {
- Q_OBJECT
- public:
- /**
- * @brief The SchemeProcessType enum
- * 方案步骤类型
- */
- enum SchemeProcessType
- {
- IndexSystem, // 构建指标体系
- ImportWeightData, // 导入权重数据
- OptimizeIndex, // 指标体系优化
- CalculateWeight, // 指标权重计算
- ImportEvalData, // 导入评估数据
- RunEvaluate, // 运行评估算法
- ShowEvalResult, // 显示评估结果
- GenerateReport, // 生成报告
- };
- /**
- * @brief The SchemeDataSource enum
- * 数据来源
- */
- enum SchemeDataSource
- {
- NoData = -1,
- FromExpert, // 来自专家评估
- FromMeasurement, // 来自实测
- FromScheme, // 添加方案
- };
- static QString stringFromDataSource(SchemeDataSource src);
- /**
- * @brief The Algorithm enum
- * 算法
- */
- enum Algorithm
- {
- NoAlg = -1,
- PrincipalComponents, // principal components analysis 主成分分析法
- Entropy, // entropy methods 熵值法
- AHP, // aanalytical hierarchy process 层次分析法
- HWM, // hierarchical weighting method 层次加权法
- SPA, // set pair analysis 集对分析法
- MEA, // matter element analysis 物元分析法
- GCE, // Grey clustering evaluation method 灰色聚类评估法
- WeightedSum, // Weighted Sum 加权求和算法
- };
- static QString nameOfAlgorithm(Algorithm alg);
- static QString descriptionOfAlgorithm(Algorithm alg);
- /**
- * @brief The AlgorithmCategory enum
- * 算法分类
- */
- enum AlgorithmCategory
- {
- NoCategory = -1,
- };
- /**
- * @brief The AlgorithmInfo struct
- * 算法信息
- */
- struct AlgorithmInfo
- {
- Algorithm alg = NoAlg;
- AlgorithmCategory category = NoCategory;
- };
- enum IndexCostType
- {
- IndexCostTypeBenefit, // 效益型
- IndexCostTypeCost, // 成本型
- };
- Q_ENUM(IndexCostType)
- static QString stringFromIndexCostType(IndexCostType t);
- /**
- * @brief The SchemeProcessInfo struct
- * 方案步骤详情
- */
- struct SchemeProcessInfo
- {
- int id = -1; // 对应数据库中主键
- int projectId = -1; // 所属项目id
- int indexType; // 指标体系类型
- int step; // 步骤编号
- SchemeProcessType type; // 步骤类型
- /// 数据来源
- /// 导入数据(权重数据或者评估数据)时有效
- SchemeDataSource dSource = NoData;
- /// 算法
- /// 优化指标体系, 计算权重, 计算评估结果时, 需要用到的算法
- Algorithm algorithm = NoAlg;
- /// 效能分级, 选择灰色聚类算法计算效能评估时用到
- int efficiencyGrades = 3;
- bool isChecked = false; // 是否选择了执行
- QString createTime; // 创建时间
- QString updateTime; // 更新时间
- };
- /// 方案步骤的名称
- static QString processName(const SchemeProcessInfo &process);
- static QString processDescription(const SchemeProcessInfo &process);
- /// 给定方案步骤中可选的数据来源
- static QList<SchemeDataSource> processOptionalDataSource(const SchemeProcessInfo &process);
- /// 给定方案步骤中可选的算法
- static QList<Algorithm> processOptionalAlgorithms(const SchemeProcessInfo &process);
- /// 给定方案步骤是否可以选择执行
- static bool processIsOptional(const SchemeProcessInfo &process);
- explicit SchemePlanManager(QObject *parent = nullptr);
- signals:
- };
- #endif // SCHEMEPLANMANAGER_H
|