chengxr 1 year ago
parent
commit
47f56ebf3a
2 changed files with 149 additions and 0 deletions
  1. 39 0
      QFD/common/SchemePlanManager.cpp
  2. 110 0
      QFD/common/SchemePlanManager.h

+ 39 - 0
QFD/common/SchemePlanManager.cpp

@@ -0,0 +1,39 @@
+#include "SchemePlanManager.h"
+
+QString SchemePlanManager::stringFromDataSource(SchemePlanManager::SchemeDataSource src)
+{
+    switch (src) {
+    case NoData:
+        return "无";
+
+    case FromExpert:
+        return "导入专家数据";
+
+    case FromMeasurement:
+        return "导入实测数据";
+    }
+}
+
+QString SchemePlanManager::stringFromAlgorithm(SchemePlanManager::Algorithm alg)
+{
+    switch (alg) {
+    case NoAlg:
+        return "无";
+    case PrincipalComponents:
+        return "主成分分析法";
+    case Entropy:
+        return "熵值法";
+    case AHP:
+        return "层次分析法";
+    case HWM:
+        return "层次加权法";
+    case SPA:
+        return "集对分析法";
+    case MEA:
+        return "物元分析法";
+    case GCE:
+        return "灰色聚类评估法";
+    }
+}
+
+SchemePlanManager::SchemePlanManager(QObject *parent) : QObject(parent) { }

+ 110 - 0
QFD/common/SchemePlanManager.h

@@ -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