InteractiveData.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #ifndef INTERACTIVEDATA_H
  2. #define INTERACTIVEDATA_H
  3. #include <QMap>
  4. #include <QList>
  5. #include <QVector>
  6. #include <QString>
  7. #include <QReadWriteLock>
  8. #include <QReadLocker>
  9. #include <QWriteLocker>
  10. #include "template_singleton.h"
  11. #include "DataListModel.h"
  12. #define MATERIALS_TYPE_ALL "0"
  13. class InteractiveData : public QObject
  14. {
  15. SINGLETON_DEFINE(InteractiveData) // 定义为单例类
  16. Q_OBJECT
  17. Q_PROPERTY(QSet<QString> roles READ roles WRITE setRoles NOTIFY rolesChanged)
  18. Q_PROPERTY(QSet<QString> permissions READ permissions WRITE setPermissions NOTIFY permissionsChanged)
  19. signals:
  20. void rolesChanged();
  21. void permissionsChanged();
  22. public:
  23. Q_INVOKABLE bool isHavePower(const QString &operation);
  24. QSet<QString> roles();
  25. void setRoles(const QSet<QString> &roles);
  26. QSet<QString> permissions();
  27. void setPermissions(const QSet<QString> &permissions);
  28. private:
  29. explicit InteractiveData();
  30. public:
  31. QReadWriteLock m_dataCacheLock; // 数据缓存锁
  32. int m_checkPlanStatus = -1; // 当前物资柜检查计划ID
  33. QString m_token; // token存储
  34. QString m_cabinetId; // 物资柜ID
  35. QString m_userName; // 用户名
  36. QSet<QString> m_roles; // 用户角色
  37. QSet<QString> m_permissions; // 用户许可
  38. // 用于http返回重复消息性能优化的json临时存储
  39. QByteArray m_jsonCacheExceptionTypeDict; // 异常类型字典缓存Json
  40. QByteArray m_jsonCacheSeverityLevelDict; // 严重程度字典缓存Json
  41. QByteArray m_jsonCacheMaterialProp; // 物资属性数据缓存Json
  42. QByteArray m_jsonCacheMaterialType; // 物资类型数据缓存Json
  43. QByteArray m_jsonCacheMaterialInfo; // 物资信息数据缓存Json
  44. QByteArray m_jsonCacheExMaterialInfo; // 异常物资数据缓存Json
  45. QByteArray m_jsonCacheMaterialsLoanExceptionInfo; // 物资借出异常缓存Json
  46. // 数据缓存列表
  47. // 异常类型字典值
  48. QList<QString> m_dataCacheExceptionTypeDictCode; // 异常类型字典 Code 列表
  49. QHash<QString, QString> m_dataCacheExceptionTypeDictLabel; // 异常类型字典 Code Label 绑定关系
  50. QHash<QString, QString> m_dataCacheExceptionTypeDictValue; // 异常类型字典 Code Value 绑定关系
  51. // 严重程度字典值
  52. QList<QString> m_dataCacheSeverityLevelDictCode; // 严重程度字典 Code 列表
  53. QHash<QString, QString> m_dataCacheSeverityLevelDictLabel; // 严重程度字典 Code Label 绑定关系
  54. QHash<QString, QString> m_dataCacheSeverityLevelDictValue; // 严重程度字典 Code Value 绑定关系
  55. // 物资属性
  56. QList<QString> m_dataCacheMaterialPropId; // 物资属性 ID 列表
  57. QHash<QString, QString> m_dataCacheMaterialPropName; // 物资属性 ID Name 绑定关系
  58. QHash<QString, QString> m_dataCacheMaterialPropPropertyId; // 物资属性 ID 属性项ID 绑定关系
  59. QHash<QString, QString> m_dataCacheMaterialPropPropertyName;// 物资属性 ID 属性项名称 绑定关系
  60. // 物资类型
  61. QList<QString> m_dataCacheMaterialTypeId; // 物资类型 ID 列表
  62. QHash<QString, QString> m_dataCacheMaterialTypeName; // 物资类型 ID 名称 绑定关系
  63. QHash<QString, QString> m_dataCacheMaterialTypeIcon; // 物资类型 ID 图标 绑定关系
  64. QHash<QString, QString> m_dataCacheMaterialTypePicture; // 物资类型 ID 图片 绑定关系
  65. QHash<QString, QStringList> m_dataCacheMaterialTypeAncestors; // 物资类型 ID 上层属性 绑定关系
  66. QHash<QString, QStringList> m_dataCacheMaterialTypePropertyIds; // 物资类型 ID 属性项ids 绑定关系
  67. // 物资信息
  68. QList<QString> m_dataCacheMaterialInfoId; // 物资信息 ID 列表
  69. QHash<QString, QString> m_dataCacheMaterialInfoName; // 物资信息 ID 名称 绑定关系
  70. QHash<QString, QString> m_dataCacheMaterialInfoRfid; // 物资信息 ID rfid 绑定关系
  71. QHash<QString, QString> m_dataCacheMaterialInfoLoan; // 物资信息 ID 借出状态 绑定关系
  72. QHash<QString, QString> m_dataCacheMaterialInfoStat; // 物资信息 ID 异常状态 绑定关系
  73. QHash<QString, QString> m_dataCacheMaterialInfoDate; // 物资信息 ID 过期时间 绑定关系
  74. QHash<QString, QString> m_dataCacheMaterialInfoTypeId; // 物资信息 ID 类型ID 绑定关系
  75. QHash<QString, QString> m_dataCacheMaterialInfoPropId; // 物资信息 ID 属性ID 绑定关系
  76. QHash<QString, QString> m_dataCacheMaterialInfoCabinetId; // 物资信息 ID 机柜ID 绑定关系
  77. // 异常信息类型
  78. QList<QString> m_dataCacheExMaterialTypeId; // 物资类型 ID 列表
  79. QHash<QString, int> m_dataCacheExMaterialTypeExNumber; // 物资异常类型数量绑定关系
  80. // 异常信息处理
  81. QList<QString> m_dataCacheExMaterialInfoId; // 异常物资信息 ID 列表
  82. QHash<QString, QString> m_dataCacheExMaterialInfoName; // 异常物资信息 ID 名称 绑定关系
  83. QHash<QString, QString> m_dataCacheExMaterialInfoRfid; // 异常物资信息 ID rfid 绑定关系
  84. QHash<QString, QString> m_dataCacheExMaterialInfoLoan; // 异常物资信息 ID 借出状态 绑定关系
  85. QHash<QString, QString> m_dataCacheExMaterialInfoStat; // 异常物资信息 ID 状态 绑定关系
  86. QHash<QString, QString> m_dataCacheExMaterialInfoDate; // 异常物资信息 ID 过期时间 绑定关系
  87. QHash<QString, QString> m_dataCacheExMaterialInfoTypeId; // 异常物资信息 ID 类型ID 绑定关系
  88. QHash<QString, QString> m_dataCacheExMaterialInfoPropId; // 异常物资信息 ID 属性ID 绑定关系
  89. // 错放物资信息
  90. QList<QString> m_dataCacheMaterialLoadRfid; // 错放物资信息 RFID 列表
  91. QHash<QString, QString> m_dataCacheMaterialLoanName; // 错放物资信息 RFID 名称 绑定关系
  92. // QHash<QString, QString> m_dataCacheMaterialLoanRfid; // 错放物资信息 RFID rfid 绑定关系
  93. QHash<QString, QString> m_dataCacheMaterialLoanTypeIcon; // 错放物资信息 RFID 类型图标 绑定关系
  94. QHash<QString, QString> m_dataCacheMaterialLoanTypePicture; // 错放物资信息 RFID 类型图片 绑定关系
  95. // 本柜子的物资
  96. // 用于qml显示的model
  97. DataListModel m_modelMaterialType; // 物资类型 model
  98. DataListModel m_modelMaterialInfo; // 物资信息 model
  99. DataListModel m_modelMaterialManualReplace; // 手动更换 model
  100. DataListModel m_modelMaterialException; // 物资异常 Model
  101. DataListModel m_modelMaterialDissolve; // 物资解除错放 model
  102. DataListModel m_modelMaterialMisplace; // 物资错放异常 model
  103. DataListModel m_modelMaterialBinded; // 物资绑定 model
  104. DataListModel m_modelMaterialUnbind; // 物资解绑 model
  105. DataListModel m_modelMaterialTake; // 物资领取 model
  106. DataListModel m_modelMaterialBack; // 物资归还 model
  107. };
  108. #endif // INTERACTIVEDATA_H