ProjectManager.h 2.2 KB

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