SchemePlanManager.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #ifndef SCHEMEPLANMANAGER_H
  2. #define SCHEMEPLANMANAGER_H
  3. #include <QObject>
  4. class SchemePlanManager : public QObject
  5. {
  6. Q_OBJECT
  7. public:
  8. /**
  9. * @brief The SchemeProcessType enum
  10. * 方案步骤类型
  11. */
  12. enum SchemeProcessType
  13. {
  14. IndexSystem, // 构建指标体系
  15. ImportWeightData, // 导入权重数据
  16. OptimizeIndex, // 指标体系优化
  17. CalculateWeight, // 指标权重计算
  18. ImportEvalData, // 导入评估数据
  19. RunEvaluate, // 运行评估算法
  20. ShowEvalResult, // 显示评估结果
  21. GenerateReport, // 生成报告
  22. };
  23. /**
  24. * @brief The SchemeDataSource enum
  25. * 数据来源
  26. */
  27. enum SchemeDataSource
  28. {
  29. NoData = -1,
  30. FromExpert, // 来自专家评估
  31. FromMeasurement, // 来自实测
  32. };
  33. static QString stringFromDataSource(SchemeDataSource src);
  34. /**
  35. * @brief The Algorithm enum
  36. * 算法
  37. */
  38. enum Algorithm
  39. {
  40. NoAlg = -1,
  41. PrincipalComponents, // principal components analysis 主成分分析法
  42. Entropy, // entropy methods 熵值法
  43. AHP, // aanalytical hierarchy process 层次分析法
  44. HWM, // hierarchical weighting method 层次加权法
  45. SPA, // set pair analysis 集对分析法
  46. MEA, // matter element analysis 物元分析法
  47. GCE, // Grey clustering evaluation method 灰色聚类评估法
  48. };
  49. static QString stringFromAlgorithm(Algorithm alg);
  50. /**
  51. * @brief The AlgorithmCategory enum
  52. * 算法分类
  53. */
  54. enum AlgorithmCategory
  55. {
  56. NoCategory = -1,
  57. };
  58. /**
  59. * @brief The AlgorithmInfo struct
  60. * 算法信息
  61. */
  62. struct AlgorithmInfo
  63. {
  64. Algorithm alg = NoAlg;
  65. AlgorithmCategory category = NoCategory;
  66. };
  67. /**
  68. * @brief The SchemeProcessInfo struct
  69. * 方案步骤详情
  70. */
  71. struct SchemeProcessInfo
  72. {
  73. int id; // 对应数据库中主键
  74. int projectId; // 所属项目id
  75. int indexType; // 指标体系类型
  76. int step; // 步骤编号
  77. SchemeProcessType type; // 步骤类型
  78. QString name; // 步骤名称
  79. /// 数据来源
  80. /// 导入数据(权重数据或者评估数据)时有效
  81. SchemeDataSource dSource = NoData;
  82. /// 算法
  83. /// 优化指标体系, 计算权重, 计算评估结果时, 需要用到的算法
  84. Algorithm algorithm = NoAlg;
  85. /// 效能分级, 选择灰色聚类算法计算效能评估时用到
  86. int efficiencyGrades = 0;
  87. bool isOptional; // 是否可选
  88. bool isChecked; // 选中状态
  89. };
  90. explicit SchemePlanManager(QObject *parent = nullptr);
  91. signals:
  92. };
  93. #endif // SCHEMEPLANMANAGER_H