ClassSet.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. #ifndef CLASSSET_H
  2. #define CLASSSET_H
  3. #include <QObject>
  4. #include <QDate>
  5. const int QF_CODE_SUCCEEDED = 1000;
  6. const int QF_CODE_ALREADY_LOGIN = 1001;
  7. const int QF_CODE_ADD_USER_SUCCEEDED = 1002;
  8. const int QF_CODE_DELETE_USER_SUCCEEDED = 1003;
  9. const int QF_CODE_FAILED = 2000;
  10. const int QF_CODE_EMPTY_ACCOUNT = 2001;
  11. const int QF_CODE_EMPTY_PASSWORD = 2002;
  12. const int QF_CODE_USER_NOT_EXISTS = 2003;
  13. const int QF_CODE_WRONG_PASSWORD = 2004;
  14. const int QF_CODE_NOT_LOGIN = 2005;
  15. const int QF_CODE_PASSWORD_NOT_SAME = 2006;
  16. const int QF_CODE_PASSWORD_UNCHANGED = 2007;
  17. const int QF_CODE_DATA_ERROR = 2008;
  18. const int QF_CODE_EMPTY_USERNAME = 2009;
  19. const int QF_CODE_ACCOUNT_OCCUPIED = 2010;
  20. const int QF_CODE_DELETE_USER_FAILED = 2011;
  21. const int QF_CODE_NEED_PROJ_SUMMARY = 2020;
  22. const int QF_CODE_NEED_PROJ_NAME = 2021;
  23. const int QF_CODE_NEED_PROJ_TYPE = 2022;
  24. const int QF_CODE_PROJ_CREATE_FALIED = 2023;
  25. const int QF_CODE_PROJ_NOT_EDITABLE = 2024;
  26. const int QF_CODE_PROJ_UPDATE_FALIED = 2025;
  27. const int QF_CODE_PROJ_DELETE_FALIED = 2026;
  28. const int QF_CODE_EVAL_NOT_SUPPORTED = 2030;
  29. const int QF_CODE_WEIGHTSUM_ERROR = 2040;
  30. /**
  31. * @projectName QFD
  32. * @author cyh
  33. * @date 2021-05-12
  34. * @desc 节点矩阵信息
  35. */
  36. class NodeMatrixInfo
  37. {
  38. public:
  39. int id = -1;
  40. QString expertName; // 专家名称
  41. QString expertId; // 专家id
  42. int engineerId; // 工程id
  43. int mindId; // 脑图名称, 区分数据来源, 0:专家数据, 1:实测数据
  44. QString node; // 节点
  45. QString abscissa = ""; // 横坐标
  46. QString ordinate = ""; // 纵坐标
  47. QString nodeValue; // 节点值
  48. QDateTime writeDate; // 填写时间
  49. QString mark; // 页码
  50. QString tableMsg;
  51. int tabIndex; // tab索引
  52. QString strUuid; // 区分组
  53. };
  54. class ClassSet
  55. {
  56. public:
  57. explicit ClassSet();
  58. static QList<NodeMatrixInfo *> datas;
  59. };
  60. class UserConfig;
  61. /**
  62. * @projectName QFD
  63. * @author cyh
  64. * @date 2021-05-12
  65. * @desc 工程信息
  66. */
  67. class EngineerInfo
  68. {
  69. public:
  70. /// 指标体系类型
  71. enum IndexType
  72. {
  73. Capability = 0b1, // 能力重要度评估指标体系
  74. TechMessaures = 0b1 << 1, // 技术措施重要度评估对象
  75. SchemaEval = 0b1 << 2, // 方案评估指标体系
  76. };
  77. static QString nameOFIndexType(IndexType t);
  78. /// 评估方案类型
  79. enum EvalType
  80. {
  81. Importance = Capability | TechMessaures, // 能力与技术重要度评估
  82. TechSchema = SchemaEval, // 技术方案评估
  83. // QFD2 新增
  84. Requirements = 0b1 << 5, // 需求分析评估
  85. SchemeOptimization = 0b1 << 6, // 方案优选评估
  86. OverallEfficiency = 0b1 << 7, // 综合效能评估
  87. };
  88. Q_DECLARE_FLAGS(EvalTypes, EvalType)
  89. static QString nameOfEvalType(EvalType t);
  90. static QList<IndexType> indexListOfEvalFlags(EvalTypes flags);
  91. int engineerId = -1; // 工程id
  92. QString engineerName; // 工程名称
  93. int indexSetId = -1; // 指标体系id
  94. int measureFunctionId = -1; // 测量方法id
  95. int schemaEvalId = -1; // 方案评估id
  96. QString remark; // 备注
  97. QString effectNameStr; // 生效列(逗号分割)
  98. EvalTypes evalFlags() const;
  99. QList<IndexType> indexList() const;
  100. QList<UserConfig *> configs;
  101. };
  102. /**
  103. * @projectName QFD
  104. * @author cyh
  105. * @date 2021-05-12
  106. * @desc 用户信息
  107. */
  108. class QFUser
  109. {
  110. public:
  111. enum Role
  112. {
  113. SuperAdmin,
  114. GerneralAdmin,
  115. Expert
  116. };
  117. static QString nameOfRole(Role role);
  118. int id = -1; // id
  119. QString userName; // 用户名称
  120. QString userNo; // 用户账号
  121. QString password; // 用户密码
  122. Role role; // 角色 0-超级管理员,1-普通管理员,2-专家
  123. QString post; // 职务
  124. QString major; // 专业
  125. QString workPosition; // 工作单位
  126. QString educationDegree; // 文化程度
  127. QString phone; // 联系方式
  128. QString remark; // 注释信息
  129. QString projectId; // 工程编号
  130. QString writeTime; // 填写时间
  131. QFUser();
  132. QFUser(const QString userId, const QString password);
  133. const QString rawPassword() const;
  134. static QFUser *currentUser();
  135. QString roleName() const;
  136. int login(); // 登录
  137. static int logout(); // 退出
  138. int resetAdmin(QString account, QString password, QString repeatPassword); // 修改管理员账号
  139. private:
  140. QString m_rawPassword;
  141. };
  142. /**
  143. * @projectName QFD
  144. * @author cyh
  145. * @date 2021-05-12
  146. * @desc 评估方案信息类
  147. */
  148. class PlanInfo
  149. {
  150. public:
  151. int id = -1; // id
  152. QString planName; // 方案名称
  153. int engineerId; // 关联工程id
  154. QString desc; // 方案描述
  155. };
  156. /**
  157. * @projectName QFD
  158. * @author cyh
  159. * @date 2021-05-12
  160. * @desc 评估方案信息与指标体系关系表
  161. */
  162. class IndexSetPlanInfo
  163. {
  164. public:
  165. int id = -1; // id
  166. int indexSetId; // 指标体系id
  167. int planId; // 方案id
  168. double weight; // 权重值
  169. };
  170. /**
  171. * @projectName QFD
  172. * @author mimang
  173. * @date 2022-01-10
  174. * @desc 能力重要度评估指标体系 需求权重重要度
  175. */
  176. class DemandWeight
  177. {
  178. public:
  179. int id = -1; // id
  180. int engineerId; // 工程id
  181. QString expertId; // 专家id
  182. QString nodeName; // 节点名称
  183. double nodeValue; // 需求重要度
  184. double nodeWeight; // 权重值
  185. int tableIndex; // 表格索引
  186. int isValid; // 是否有效
  187. int pageIndex; // 页码
  188. QString tableMsg;
  189. };
  190. /**
  191. * @projectName QFD
  192. * @author mimang
  193. * @date 2022-01-10
  194. * @desc 能力重要度评估指标体系 需求权重重要度
  195. */
  196. class SchemaEval
  197. {
  198. public:
  199. int id = -1; // id
  200. int engineerId; // 工程id
  201. QString name; // 专家id
  202. QString remark; // 节点名称
  203. QString valueStr; // 指标得分
  204. double score; // 得分
  205. QString filePath; // 图片地址
  206. int type; // 类型, 0:方案优选 1:综合效能物元分析 2:综合效能灰色聚类
  207. };
  208. /**
  209. * @projectName QFD
  210. * @author mimang
  211. * @date 2022-01-11
  212. * @desc 技术措施重要度评估对象 技术重要度
  213. */
  214. class TechnicalImport
  215. {
  216. public:
  217. int id = -1; // id
  218. int engineerId; // 工程id
  219. int expertId; // 专家id
  220. QString nodeName; // 节点名称
  221. double nodeValue; // 技术重要度
  222. };
  223. /**
  224. * @brief 用户配置信息
  225. */
  226. class UserConfig
  227. {
  228. public:
  229. int id = -1;
  230. int userId; // 用户id
  231. QString userName; // 用户名称
  232. int engineerId; // 工程id
  233. double weight; // 工程权重
  234. int isValid = 1;
  235. QString createTime; // 创建时间
  236. QString updateTime; // 更新时间
  237. };
  238. /**
  239. * @projectName QFD2
  240. * @author mimang
  241. * @date 2023-09-12
  242. * @desc 项目信息
  243. */
  244. class ProjectInfo
  245. {
  246. public:
  247. int id = -1; // 项目id
  248. QString projectName; // 项目名称
  249. // int demandMindId = -1; //需求分享评估脑图ID
  250. // int programmeMindId = -1; //方案优选评估脑图ID
  251. // int generalMindId = -1; //综合效能评估脑图ID
  252. QString remark; // 备注
  253. QString taskName; // 任务名称
  254. QString estimateTime; // 评估时间
  255. QString estimateObjective; // 评估目的
  256. QString estimateDept; // 评估单位
  257. QString estimatePerson; // 评估人员
  258. QString estimateType; // 评估类型
  259. QString positionalTitles; // 职务
  260. QString createTime; // 创建时间
  261. QString updateTime; // 更新时间
  262. };
  263. /**
  264. * @projectName QFD2
  265. * @author mimang
  266. * @date 2023-09-14
  267. * @desc 算法信息
  268. */
  269. class AlgorithmInfo
  270. {
  271. public:
  272. int id = -1; // 主键id
  273. QString code; // 算法编码
  274. QString name; // 算法名称
  275. QString desc; // 算法描述
  276. int type; // 算法类型
  277. int status = 1; // 状态0不可用1可用
  278. QString createTime; // 创建时间
  279. QString updateTime; // 更新时间
  280. };
  281. /**
  282. * @projectName QFD2
  283. * @author mimang
  284. * @date 2023-09-15
  285. * @desc 工程算法关联信息
  286. */
  287. class ProjectAlgorithmRelation
  288. {
  289. public:
  290. int id = -1; // 主键id
  291. QString code; // 算法编码
  292. int projectId; // 工程id
  293. int type; // 评估类型
  294. int status = 1; // 状态0不可用1可用
  295. QString createTime; // 创建时间
  296. QString updateTime; // 更新时间
  297. };
  298. /**
  299. * @projectName QFD2
  300. * @author mimang
  301. * @date 2023-09-15
  302. * @desc 工程脑图关联信息
  303. */
  304. class ProjectMindRelation
  305. {
  306. public:
  307. int id = -1; // 主键id
  308. int mindId; // 脑图ID
  309. int projectId; // 工程id
  310. int type; // 评估类型
  311. QString createTime; // 创建时间
  312. QString updateTime; // 更新时间
  313. };
  314. /**
  315. * @projectName QFD2
  316. * @author mimang
  317. * @date 2023-09-15
  318. * @desc 标度信息
  319. */
  320. class ScaleInfo
  321. {
  322. public:
  323. int id = -1; // 主键id
  324. int projectId; // 工程id
  325. QString scaleName; // 标度名称
  326. QString scaleValue; // 标度值
  327. };
  328. /**
  329. * @projectName QFD2
  330. * @author mimang
  331. * @date 2023-09-15
  332. * @desc 等级信息
  333. */
  334. class GradeInfo
  335. {
  336. public:
  337. int id = -1; // 主键id
  338. int projectId; // 工程id
  339. int type; // 类型0物元分析法1灰色聚类法
  340. QString gradeName; // 等级名称
  341. QString gradeValue; // 等级值
  342. };
  343. /**
  344. * @projectName QFD2
  345. * @author mimang
  346. * @date 2023-09-15
  347. * @desc 等级指标信息
  348. */
  349. class GradeIndexInfo
  350. {
  351. public:
  352. int id = -1; // 主键id
  353. int projectId; // 工程id
  354. int gradeLevel; // 指标层级
  355. QString gradeParentName; // 等级指标父名称
  356. QString gradeIndexName; // 等级指标名称
  357. QString gradeIndexValue; // 等级指标值
  358. };
  359. /**
  360. * @projectName QFD2
  361. * @author mimang
  362. * @date 2023-09-15
  363. * @desc 效能指标信息
  364. */
  365. class EffectIndexInfo
  366. {
  367. public:
  368. int id = -1; // 主键id
  369. int projectId; // 工程id
  370. QString effectIndexName; // 效能指标名称
  371. QString effectIndexValue; // 效能指标值
  372. QString effectIndexUnit; // 单位
  373. QString extendLeft; // 延拓左
  374. QString extendRight; // 延拓右
  375. };
  376. /**
  377. * @projectName QFD2
  378. * @author mimang
  379. * @date 2023-09-15
  380. * @desc 效能结果信息
  381. */
  382. class EffectResult
  383. {
  384. public:
  385. int id = -1; // 主键id
  386. int projectId; // 工程id
  387. int schemeId; // 方案 id, 对于灰色聚类法, 建设前为-2, 建设后为-1;
  388. QString schemeName; // 方案名称
  389. int algType; // 算法类型, 0:物元分析法, 1:灰色聚类法
  390. QString indexName; // 指标名称
  391. QString value; // 结果
  392. };
  393. class MindWeightInfo
  394. {
  395. public:
  396. int id = -1; // 主键 id
  397. int projectId; // 项目 id
  398. int indexType; // 指标体系类型: 能力重要度评估/技术重要度评估/方案优选评估/效能评估
  399. int dataSource; // 数据来源: 导入专家数据/录入实测数据
  400. int algorithm; // 权重分析使用的算法
  401. QString weight; // 指标权重值. 格式 指标名称1:权重;指标名称2:权重;指标名称3:权重
  402. };
  403. class MindScoreInfo
  404. {
  405. public:
  406. int id = -1; // 主键 id
  407. int projectId; // 项目 id
  408. QString score; // 指标得分. 格式 指标名称1:得分;指标名称2:得分;指标名称3:得分
  409. };
  410. #endif // CLASSSET_H