db_syncthread.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #ifndef DB_SYNCTHREAD_H
  2. #define DB_SYNCTHREAD_H
  3. #include <QThread>
  4. #include <QSqlDatabase>
  5. #include <QSqlQuery>
  6. #include <QVariant>
  7. #include <QDateTime>
  8. #include <QStringList>
  9. #include <QList>
  10. #include <QUuid>
  11. #include <QJsonObject>
  12. #include <QJsonDocument>
  13. #include <QJsonValue>
  14. #include <QJsonArray>
  15. #include <QJsonParseError>
  16. #include "AlarmSet.h"
  17. #include "programconf.h"
  18. class YPSyncDev{
  19. public:
  20. explicit YPSyncDev(QString ownerCode="", QString objType="",QString objCode="",int startPort=0, uint recCur=0)
  21. {
  22. OwnerCode = ownerCode;
  23. ObjType = objType;
  24. ObjCode = objCode;
  25. StartPort = startPort;
  26. RecCur = recCur;
  27. }
  28. QString OwnerCode;
  29. QString ObjType;
  30. QString ObjCode;
  31. int StartPort;
  32. uint RecCur;
  33. };
  34. class JASyncDev{
  35. public:
  36. explicit JASyncDev(QString pid="", QString bid="", QString fid="",QString tid="",QString mid="", QString zid="", int val=0, QString device_id="", QString device_name="", QString device_data="", QString name="", QString detection_id="", QString sid="", QString mainframe_id="", QString mainframe_name="", QString loop_number="", QString position_number="", QString report_time="", int device_type=0, QString company_code="")
  37. {
  38. Pid = pid;
  39. Bid = bid;
  40. Fid = fid;
  41. Tid = tid;
  42. Mid = mid;
  43. Zid = zid;
  44. Val = val;
  45. Device_id = device_id;
  46. Device_name = device_name;
  47. Device_data = device_data;
  48. Name = name;
  49. Detection_id = detection_id;
  50. Sid = sid;
  51. Mainframe_id = mainframe_id;
  52. Mainframe_name = mainframe_name;
  53. Loop_number = loop_number;
  54. Position_number = position_number;
  55. Report_time = report_time;
  56. Device_type = device_type;
  57. Company_code = company_code;
  58. }
  59. QString Pid;
  60. QString Bid;
  61. QString Fid;
  62. QString Tid;
  63. QString Mid;
  64. QString Zid;
  65. QString Rid;
  66. int Val;
  67. QString Device_id;
  68. QString Device_name;
  69. QString Device_data;
  70. QString Name;
  71. QString Detection_id;
  72. QString Sid;
  73. QString Mainframe_id;
  74. QString Mainframe_name;
  75. QString Loop_number;
  76. QString Position_number;
  77. QString Report_time;
  78. QString Company_code;
  79. int Device_type;
  80. };
  81. class CNSyncDev{
  82. public:
  83. explicit CNSyncDev(QString ownerCode="", QString name="", QString objType="",QString objCode="",QString startPort="", uint recCur=0, QString bid="", int devtype=0, int stype=0)
  84. {
  85. OwnerCode = ownerCode;
  86. ObjName = name;
  87. ObjType = objType;
  88. ObjCode = objCode;
  89. StartPort = startPort;
  90. RecCur = recCur;
  91. ownBid= bid;
  92. devCategory = devtype;
  93. subType = stype;
  94. }
  95. QString OwnerCode;
  96. QString ObjName;
  97. QString ObjType;
  98. QString ObjCode;
  99. QString StartPort;
  100. uint RecCur;
  101. QString ownBid;
  102. int devCategory;
  103. int subType;
  104. };
  105. class SyncDataSet{
  106. public:
  107. explicit SyncDataSet(QString id="",int code=0,QString data=""){
  108. DeviceId = id;
  109. Code = code;
  110. SyncData = data;
  111. }
  112. QString DeviceId;
  113. int Code;
  114. QString SyncData;
  115. };
  116. class CnPno{
  117. public:
  118. explicit CnPno(QString name="", int pno=0, QString def=""){
  119. PName = name;
  120. Pno = pno;
  121. Default = def;
  122. }
  123. QString PName;
  124. int Pno;
  125. QString Default;
  126. };
  127. class JaPno{
  128. public:
  129. explicit JaPno(QString name="", QString attr="", int pno=0, QString def1="",QString def2=""){
  130. PName = name;
  131. Attr = attr;
  132. Pno = pno;
  133. Default1 = def1;
  134. Default2 = def2;
  135. }
  136. QString PName;
  137. QString Attr;
  138. int Pno;
  139. QString Default1;
  140. QString Default2;
  141. };
  142. class DB_SyncThread : public QThread
  143. {
  144. Q_OBJECT
  145. public:
  146. explicit DB_SyncThread(QObject *parent = nullptr);
  147. void run();
  148. void time_out();
  149. bool userInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  150. bool waterInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, int dwtype, QString companyCode);
  151. bool smokerInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  152. bool rtuInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  153. bool efireInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  154. bool videoalarmSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  155. void chkInList(QString devid);
  156. void webShmInit();
  157. void checkUsers();
  158. void checkCompany();
  159. void checkDevice();
  160. void checkAlarmStatus();
  161. void checkAlarmList();
  162. void updatePortName();
  163. void update_company_alarmstatus(QString companycode, quint8 alarmidx, uint devCount, uint devOut, uint devOutConfirm, uint devAlarmCount, uint devAlarmConfirm);
  164. void set_AlarmSet(quint16 companyIdx, quint8 alarmIdx, AlarmSet set);
  165. void get_AlarmSet(quint16 companyIdx, quint8 alarmIdx, AlarmSet *set);
  166. void setLastAlarmSet(quint16 companyIdx, quint8 dwtype, AlarmSet set);
  167. void getLastAlarmSet(quint16 companyIdx, quint8 dwtype, AlarmSet *set);
  168. void setCompanyAlarmSet(QString deviceCode, AlarmSet set);
  169. quint32 getDeviceIdxByDeviceCode(QString deviceCode);
  170. QList<CnPno> getPnoValue(QString pnoset);
  171. QList<JaPno> getJaPnoValue(QString pnoset);
  172. void va_heartbeat();
  173. void appendDevDataList(QString deviceid);
  174. signals:
  175. void SyncData(QString uuid, QString jsonstr);
  176. void cnSyncData(QString uuid, QString jsonstr, int devCategory);
  177. void jaSyncData(int xh,QString uuid,QString jsonstr);
  178. void companyAlarmChanged(QString companyCode);
  179. public slots:
  180. private:
  181. QSqlDatabase mdb;
  182. bool dbOpened, mdbOpened;
  183. bool isWorking;
  184. QList<YPSyncDev> syncDevList;
  185. QList<CNSyncDev> cnDevList;
  186. QList<JASyncDev> jaDevList;
  187. QStringList dList,sqlList;
  188. QList<int> pcList;
  189. quint8 times;
  190. uint UpdateTime;
  191. int day;
  192. bool initTime;
  193. QStringList deviceDataList;
  194. };
  195. #endif // DB_SYNCTHREAD_H