|
@@ -0,0 +1,110 @@
|
|
|
+#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, // 来自实测
|
|
|
+ };
|
|
|
+
|
|
|
+ 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 灰色聚类评估法
|
|
|
+ };
|
|
|
+
|
|
|
+ static QString stringFromAlgorithm(Algorithm alg);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @brief The AlgorithmCategory enum
|
|
|
+ * 算法分类
|
|
|
+ */
|
|
|
+ enum AlgorithmCategory
|
|
|
+ {
|
|
|
+ NoCategory = -1,
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @brief The AlgorithmInfo struct
|
|
|
+ * 算法信息
|
|
|
+ */
|
|
|
+ struct AlgorithmInfo
|
|
|
+ {
|
|
|
+ Algorithm alg = NoAlg;
|
|
|
+ AlgorithmCategory category = NoCategory;
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @brief The SchemeProcessInfo struct
|
|
|
+ * 方案步骤详情
|
|
|
+ */
|
|
|
+ struct SchemeProcessInfo
|
|
|
+ {
|
|
|
+ int id; // 对应数据库中主键
|
|
|
+ int projectId; // 所属项目id
|
|
|
+ int indexType; // 指标体系类型
|
|
|
+
|
|
|
+ int step; // 步骤编号
|
|
|
+ SchemeProcessType type; // 步骤类型
|
|
|
+ QString name; // 步骤名称
|
|
|
+
|
|
|
+ /// 数据来源
|
|
|
+ /// 导入数据(权重数据或者评估数据)时有效
|
|
|
+ SchemeDataSource dSource = NoData;
|
|
|
+
|
|
|
+ /// 算法
|
|
|
+ /// 优化指标体系, 计算权重, 计算评估结果时, 需要用到的算法
|
|
|
+ Algorithm algorithm = NoAlg;
|
|
|
+
|
|
|
+ /// 效能分级, 选择灰色聚类算法计算效能评估时用到
|
|
|
+ int efficiencyGrades = 0;
|
|
|
+
|
|
|
+ bool isOptional; // 是否可选
|
|
|
+ bool isChecked; // 选中状态
|
|
|
+ };
|
|
|
+
|
|
|
+ explicit SchemePlanManager(QObject *parent = nullptr);
|
|
|
+
|
|
|
+signals:
|
|
|
+};
|
|
|
+
|
|
|
+#endif // SCHEMEPLANMANAGER_H
|