ProjectManager.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef PROJECTMANAGER_H
  2. #define PROJECTMANAGER_H
  3. #include <QObject>
  4. extern int kDemoProjId1;
  5. extern int kDemoProjId2;
  6. class ProjectInfo;
  7. class ProjectManager : QObject
  8. {
  9. Q_OBJECT
  10. public:
  11. /// 指标体系类型
  12. /// @attention 枚举值与本地数据库关联,可以新增,但如无必要禁止修改,除非你知道自己在干什么
  13. enum IndexType
  14. {
  15. AbilityIndex = 0b1, // 能力重要度评估指标体系
  16. TechIndex = 0b1 << 1, // 技术措施重要度评估对象
  17. OptimalIndex = 0b1 << 2, // 方案优选评估指标体系
  18. EfficiencyIndex = 0b1 << 3, // 综合效能评估指标体系
  19. };
  20. Q_ENUM(IndexType)
  21. static QString nameOfIndexType(IndexType t);
  22. /// 评估类型
  23. /// 评估类型是根据指标类型体系定义的
  24. /// 一个评估类型包含一个或多个指标体系类型
  25. enum EvalType
  26. {
  27. None,
  28. DemandEval = AbilityIndex | TechIndex, // 需求分析评估
  29. OptimalEval = OptimalIndex, // 方案优选评估
  30. EfficiencyEval = EfficiencyIndex, // 综合效能评估
  31. };
  32. Q_ENUM(EvalType)
  33. Q_DECLARE_FLAGS(EvalTypes, EvalType)
  34. static QString nameOfEvalType(EvalType t);
  35. static QList<IndexType> indexListOfEvalTypes(EvalTypes flags);
  36. static EvalTypes evalTypes(ProjectInfo proj);
  37. static QList<EvalType> evalTypeList(EvalTypes types);
  38. static QList<EvalType> evalTypeList(ProjectInfo proj);
  39. static QList<IndexType> indexList(ProjectInfo proj);
  40. ///
  41. /// \brief queryProjects 查询全部项目
  42. /// \param projList 项目列表
  43. /// \return 错误码
  44. static int queryProjects(QList<ProjectInfo *> *projList);
  45. static int queryProjects(QList<ProjectInfo *> *list, int &total, int page, int pageSize, QString name);
  46. static int verifyProjectInfo(ProjectInfo proj);
  47. static int insertProject(ProjectInfo &proj);
  48. static int updateProject(ProjectInfo &proj);
  49. static int deleteProject(int id);
  50. };
  51. #endif // PROJECTMANAGER_H