db_syncthread.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  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 YPYWSyncDev{
  19. public:
  20. explicit YPYWSyncDev(QString deviceCode="", QString deviceName="",QString deviceAddress="",QString longitude="",QString latitude="",int deviceType = 0,QString companyCode="")
  21. {
  22. DeviceCode = deviceCode;
  23. DeviceName = deviceName;
  24. DeviceAddress = deviceAddress;
  25. Longitude = longitude;
  26. Latitude = latitude;
  27. DeviceType = deviceType;
  28. CompanyCode = companyCode;
  29. }
  30. QString DeviceCode;
  31. QString DeviceName;
  32. QString DeviceAddress;
  33. QString Longitude;
  34. QString Latitude;
  35. int DeviceType;
  36. QString CompanyCode;
  37. };
  38. class YPSyncDev{
  39. public:
  40. explicit YPSyncDev(QString ownerCode="", QString objType="",QString objCode="",int startPort=0, uint recCur=0)
  41. {
  42. OwnerCode = ownerCode;
  43. ObjType = objType;
  44. ObjCode = objCode;
  45. StartPort = startPort;
  46. RecCur = recCur;
  47. }
  48. QString OwnerCode;
  49. QString ObjType;
  50. QString ObjCode;
  51. int StartPort;
  52. uint RecCur;
  53. };
  54. class YPSyncXyDev{
  55. public:
  56. explicit YPSyncXyDev(QString ownerCode="", int objType=0,QString objCode="",int startPort=0, uint recCur=0,QString ownerName="",QString deviceName="",QString companyCode="",QString companyName="")
  57. {
  58. OwnerCode = ownerCode;
  59. ObjType = objType;
  60. ObjCode = objCode;
  61. StartPort = startPort;
  62. RecCur = recCur;
  63. OwnerName = ownerName;
  64. DeviceName = deviceName;
  65. CompanyCode = companyCode;
  66. CompanyName = companyName;
  67. }
  68. QString OwnerCode;
  69. int ObjType;
  70. QString ObjCode;
  71. int StartPort;
  72. uint RecCur;
  73. QString OwnerName;
  74. QString DeviceName;
  75. QString CompanyCode;
  76. QString CompanyName;
  77. };
  78. class JASyncDev{
  79. public:
  80. 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="")
  81. {
  82. Pid = pid;
  83. Bid = bid;
  84. Fid = fid;
  85. Tid = tid;
  86. Mid = mid;
  87. Zid = zid;
  88. Val = val;
  89. Device_id = device_id;
  90. Device_name = device_name;
  91. Device_data = device_data;
  92. Name = name;
  93. Detection_id = detection_id;
  94. Sid = sid;
  95. Mainframe_id = mainframe_id;
  96. Mainframe_name = mainframe_name;
  97. Loop_number = loop_number;
  98. Position_number = position_number;
  99. Report_time = report_time;
  100. Device_type = device_type;
  101. Company_code = company_code;
  102. }
  103. QString Pid;
  104. QString Bid;
  105. QString Fid;
  106. QString Tid;
  107. QString Mid;
  108. QString Zid;
  109. QString Rid;
  110. int Val;
  111. QString Device_id;
  112. QString Device_name;
  113. QString Device_data;
  114. QString Name;
  115. QString Detection_id;
  116. QString Sid;
  117. QString Mainframe_id;
  118. QString Mainframe_name;
  119. QString Loop_number;
  120. QString Position_number;
  121. QString Report_time;
  122. QString Company_code;
  123. int Device_type;
  124. };
  125. class HPSyncDev{
  126. public:
  127. explicit HPSyncDev(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="")
  128. {
  129. Pid = pid;
  130. Bid = bid;
  131. Fid = fid;
  132. Tid = tid;
  133. Mid = mid;
  134. Zid = zid;
  135. Val = val;
  136. Device_id = device_id;
  137. Device_name = device_name;
  138. Device_data = device_data;
  139. Name = name;
  140. Detection_id = detection_id;
  141. Sid = sid;
  142. Mainframe_id = mainframe_id;
  143. Mainframe_name = mainframe_name;
  144. Loop_number = loop_number;
  145. Position_number = position_number;
  146. Report_time = report_time;
  147. Device_type = device_type;
  148. Company_code = company_code;
  149. }
  150. QString Pid;
  151. QString Bid;
  152. QString Fid;
  153. QString Tid;
  154. QString Mid;
  155. QString Zid;
  156. QString Rid;
  157. int Val;
  158. QString Device_id;
  159. QString Device_name;
  160. QString Device_data;
  161. QString Name;
  162. QString Detection_id;
  163. QString Sid;
  164. QString Mainframe_id;
  165. QString Mainframe_name;
  166. QString Loop_number;
  167. QString Position_number;
  168. QString Report_time;
  169. QString Company_code;
  170. int Device_type;
  171. };
  172. class CNSyncDev{
  173. public:
  174. explicit CNSyncDev(QString ownerCode="", QString name="", QString objType="",QString objCode="",QString startPort="", uint recCur=0, QString bid="", int devtype=0, int stype=0)
  175. {
  176. OwnerCode = ownerCode;
  177. ObjName = name;
  178. ObjType = objType;
  179. ObjCode = objCode;
  180. StartPort = startPort;
  181. RecCur = recCur;
  182. ownBid= bid;
  183. devCategory = devtype;
  184. subType = stype;
  185. }
  186. QString OwnerCode;
  187. QString ObjName;
  188. QString ObjType;
  189. QString ObjCode;
  190. QString StartPort;
  191. uint RecCur;
  192. QString ownBid;
  193. int devCategory;
  194. int subType;
  195. };
  196. class NewCNSyncDev{
  197. public:
  198. explicit NewCNSyncDev(QString deviceCode="", QString deviceName="", QString descript="",int deviceType=0, QString deviceTypeName="", QString openProjectId="", int devtype=0, QString data="",QString port="")
  199. {
  200. DeviceCode = deviceCode;
  201. DeviceName = deviceName;
  202. Descript = descript;
  203. DeviceType = deviceType;
  204. DeviceTypeName = deviceTypeName;
  205. OpenProjectId= openProjectId;
  206. devCategory = devtype;
  207. Data = data;
  208. Port = port;
  209. }
  210. QString DeviceCode;
  211. QString DeviceName;
  212. QString Descript;
  213. int DeviceType;
  214. QString DeviceTypeName;
  215. QString OpenProjectId;
  216. int devCategory;
  217. QString Data;
  218. QString Port;
  219. };
  220. class XfzdSyncDev{
  221. public:
  222. explicit XfzdSyncDev(QString deviceCode="", QString deviceName="", QString descript="",int deviceType=0, QString deviceTypeName="", QString openProjectId="", int devtype=0, QString data="",QString port="",QString deviceFloor="")
  223. {
  224. DeviceCode = deviceCode;
  225. DeviceName = deviceName;
  226. Descript = descript;
  227. DeviceType = deviceType;
  228. DeviceTypeName = deviceTypeName;
  229. OpenProjectId= openProjectId;
  230. devCategory = devtype;
  231. Data = data;
  232. Port = port;
  233. DeviceFloor = deviceFloor;
  234. }
  235. QString DeviceCode;
  236. QString DeviceName;
  237. QString Descript;
  238. int DeviceType;
  239. QString DeviceTypeName;
  240. QString OpenProjectId;
  241. int devCategory;
  242. QString Data;
  243. QString Port;
  244. QString DeviceFloor;
  245. };
  246. class SyncDataSet{
  247. public:
  248. explicit SyncDataSet(QString id="",int code=0,QString data=""){
  249. DeviceId = id;
  250. Code = code;
  251. SyncData = data;
  252. }
  253. QString DeviceId;
  254. int Code;
  255. QString SyncData;
  256. };
  257. class CnPno{
  258. public:
  259. explicit CnPno(QString name="", int pno=0, QString def=""){
  260. PName = name;
  261. Pno = pno;
  262. Default = def;
  263. }
  264. QString PName;
  265. int Pno;
  266. QString Default;
  267. };
  268. class JaPno{
  269. public:
  270. explicit JaPno(QString name="", QString attr="", int pno=0, QString def1="",QString def2=""){
  271. PName = name;
  272. Attr = attr;
  273. Pno = pno;
  274. Default1 = def1;
  275. Default2 = def2;
  276. }
  277. QString PName;
  278. QString Attr;
  279. int Pno;
  280. QString Default1;
  281. QString Default2;
  282. };
  283. class DB_SyncThread : public QThread
  284. {
  285. Q_OBJECT
  286. public:
  287. explicit DB_SyncThread(QObject *parent = nullptr);
  288. void run();
  289. void time_out();
  290. bool userInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  291. bool waterInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, int dwtype, QString companyCode);
  292. bool manholeCoverSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, int dwtype, QString companyCode);
  293. bool smokerInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  294. bool rtuInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  295. bool efireInfoSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode,QString owner_xh);
  296. bool videoalarmSync(QString devid, QString deviceCode, uint sync_id, QString tbname, QDate chkday, uint ID, QString companyCode);
  297. void chkInList(QString devid);
  298. void webShmInit();
  299. void checkUsers();
  300. void checkCompany();
  301. void checkDevice();
  302. void checkAlarmStatus();
  303. void checkAlarmList();
  304. void updatePortName();
  305. void update_company_alarmstatus(QString companycode, quint8 alarmidx, uint devCount, uint devOut, uint devOutConfirm, uint devAlarmCount, uint devAlarmConfirm);
  306. void set_AlarmSet(quint16 companyIdx, quint8 alarmIdx, AlarmSet set);
  307. void get_AlarmSet(quint16 companyIdx, quint8 alarmIdx, AlarmSet *set);
  308. void setLastAlarmSet(quint16 companyIdx, quint8 dwtype, AlarmSet set);
  309. void getLastAlarmSet(quint16 companyIdx, quint8 dwtype, AlarmSet *set);
  310. void setCompanyAlarmSet(QString deviceCode, AlarmSet set);
  311. quint32 getDeviceIdxByDeviceCode(QString deviceCode);
  312. QList<CnPno> getPnoValue(QString pnoset);
  313. QList<JaPno> getJaPnoValue(QString pnoset);
  314. void va_heartbeat();
  315. void appendDevDataList(QString deviceid);
  316. void set_cndevlist(QList<CNSyncDev> list);
  317. signals:
  318. void SyncData(QString uuid, QString jsonstr);
  319. void cnSyncData(int xh,QString uuid, QString jsonstr, int devCategory);
  320. void NewcnSyncData(int xh,QString uuid, QString jsonstr, int devCategory);
  321. void jaSyncData(int xh,QString uuid,QString jsonstr);
  322. void hpSyncData(int xh,QString uuid,QString jsonstr);
  323. void companyAlarmChanged(QString companyCode);
  324. void appendLog(QString log);
  325. public slots:
  326. private:
  327. QSqlDatabase mdb;
  328. bool dbOpened, mdbOpened;
  329. bool isWorking;
  330. QList<YPSyncDev> syncDevList;
  331. QList<CNSyncDev> cnDevList;
  332. QList<NewCNSyncDev> NewcnDevList;
  333. QList<XfzdSyncDev> XfzdDevList;
  334. QList<JASyncDev> jaDevList;
  335. QList<HPSyncDev> hpDevList;
  336. QStringList dList,sqlList;
  337. QList<int> pcList;
  338. quint8 times;
  339. uint UpdateTime;
  340. int day;
  341. bool initTime;
  342. QStringList deviceDataList;
  343. };
  344. #endif // DB_SYNCTHREAD_H